Консолидировать игровые эволюции
Так как я готовил свою игру! приложение для производства и начал заполнять базу данных, я немного изменил свои модели. Сейчас я дошел до 8.sql в своих сценариях эволюции, и мне было интересно, есть ли способ объединить их и начать заново с 1.sql.
Могу ли я переписать 1.sql для моделирования моей текущей схемы и удалить 2-8? Или это заставит Play сходить с ума?
Это не так уж важно, так как я не верю, что количество сценариев эволюции может быть ограничено, но было бы лучше иметь меньше. Причина, по которой я не могу просто удалить свои таблицы и начать заново, состоит в том, что у меня есть данные, которые я бы не хотел удалять.
Я мог бы, вероятно, выполнить резервное копирование своих данных, а затем снова импортировать их, за исключением того, что у меня есть пространственные данные (PostGIS), и я не уверен, что это будет должным образом сохранено.
2 ответа
Я не думаю, что это хорошая идея, так как скрипт развития хранит некоторые метаданные в вашей базе данных (таблица play_evolutions
), особенно, он вычисляет хеш против исходного кода SQL.
Шаги:
- Создайте новый консолидированный сценарий эволюции с именем: 1.sql.
- Дамп информации о схеме БД. Используйте раздел # --- !Ups.
- Обязательно добавьте схему, индексы, уникальные символы и ограничения (СОЗДАЙТЕ, ЕСЛИ НЕ СУЩЕСТВУЕТ).
- Обязательно добавьте записи по умолчанию в БД (CREATE IGNORE)
- Удалить все предыдущие разработки из репозитория кода (файлы .sql).
- Зафиксировать изменения
- Вручную усечь таблицу play_evolutions из базы данных (с помощью portforward/ssh/cli)
- Внести изменения
- Позвольте вашему конвейеру CI/CD развиваться
- Убедитесь, что count(*) таблицы play_evolutions равен 1.
Поздравляем, вы только что уничтожили свои сценарии эволюции.