Например, у меня есть сценарий V1__InitScript.sql
с запросом:
create table if not exists users
(
guid varchar(36) not null primary key,
name varchar(255) not null,
description varchar(500)
);
Я запускаю мое приложение на чистой БД и выполняю этот сценарий.Теперь у меня есть пустая таблица с именем users
и 3 столбцами.Я начинаю работу, и мне нужно добавить один столбец, например age
.что мне делать?
1) Я могу добавить этот столбец в таблицу.И после этого добавьте этот запрос к V2__Add_column.sql
.Но когда я запускаю приложение flyway, попробуйте сделать этот сценарий V2, потому что он не существует в таблице flyway_schema_history
.
2) Когда я хочу добавить столбец, я немедленно добавляю его с помощью flyway
.Но когда я занимаюсь активной разработкой, я часто могу изменить данные.Таким образом, я должен запускать flyway
для каждого изменения?
Кажется разумным изменить структуру базы данных и сценарии для сбора в отдельный файл.и при подготовке нового выпуска добавьте все необходимые сценарии в flyway
.Но как я могу быть на моей машине разработчика?Или мне не нужно запускать flyway
на моей машине, а только на тестовом и производственном уровне?
и еще один вопрос - как правильно построить процесс, если работа выполняется с одной и той же базой для всехРазработчики.Т.е. у разработчика нет локальной базы данных на компьютере