Консолидировать игровые эволюции

Так как я готовил свою игру! приложение для производства и начал заполнять базу данных, я немного изменил свои модели. Сейчас я дошел до 8.sql в своих сценариях эволюции, и мне было интересно, есть ли способ объединить их и начать заново с 1.sql.

Могу ли я переписать 1.sql для моделирования моей текущей схемы и удалить 2-8? Или это заставит Play сходить с ума?

Это не так уж важно, так как я не верю, что количество сценариев эволюции может быть ограничено, но было бы лучше иметь меньше. Причина, по которой я не могу просто удалить свои таблицы и начать заново, состоит в том, что у меня есть данные, которые я бы не хотел удалять.

Я мог бы, вероятно, выполнить резервное копирование своих данных, а затем снова импортировать их, за исключением того, что у меня есть пространственные данные (PostGIS), и я не уверен, что это будет должным образом сохранено.

2 ответа

Решение

Я не думаю, что это хорошая идея, так как скрипт развития хранит некоторые метаданные в вашей базе данных (таблица play_evolutions), особенно, он вычисляет хеш против исходного кода SQL.

Шаги:

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

Поздравляем, вы только что уничтожили свои сценарии эволюции.

Другие вопросы по тегам