Миграции и git
Миграции и git
Есть вопрос по поводу использования миграций и веток в git. Насколько я понял миграции существую, чтобы связать состояние кода с состоянием базы данных.
Допустим у меня есть основная ветка со своими миграциями и соответственно таблицами в базе данных. Я создаю новую ветку для экспериментов и создаю там свои миграции и применяю их к базе. В какой-то момент мне захочется вернуться в основную ветку. Я перехожу но база данных то остаётся, yii migrate будет говорить что все в порядке. В таком случае как поступают правильно? Удаляют все таблицы и создают заново из миграций находящихся в конкретной ветке? То есть придется при каждом переключении пересоздавать базу. Я уже молчу про слияние веток с разными миграциями. В интернете не нашел полного ответа, может подскажете статью на эту тему.
Допустим у меня есть основная ветка со своими миграциями и соответственно таблицами в базе данных. Я создаю новую ветку для экспериментов и создаю там свои миграции и применяю их к базе. В какой-то момент мне захочется вернуться в основную ветку. Я перехожу но база данных то остаётся, yii migrate будет говорить что все в порядке. В таком случае как поступают правильно? Удаляют все таблицы и создают заново из миграций находящихся в конкретной ветке? То есть придется при каждом переключении пересоздавать базу. Я уже молчу про слияние веток с разными миграциями. В интернете не нашел полного ответа, может подскажете статью на эту тему.
-
- Сообщения: 239
- Зарегистрирован: 2017.03.28, 20:03
Re: Миграции и git
Как вариант перед git checkout делать migrate/down до нужного состояния. Но это только если у вас во всех миграциях есть down и он не возвращает false
- chungachguk
- Сообщения: 435
- Зарегистрирован: 2012.07.17, 11:52
Re: Миграции и git
Как вариант попробуй в настройках подключения указывать разный префикс БД для разных веток, а при запуске миграции указывать разные таблицы миграции.
Re: Миграции и git
Все это похоже на полумеры. Хотелось бы чтоб yii migrate понимал, что в таблице migrations больше миграций чем в папке migrations и само пересоздавало базу, конечно по умолчанию такое поведение выглядит стремным, но если б был какой-то флаг.
-
- Сообщения: 239
- Зарегистрирован: 2017.03.28, 20:03
Re: Миграции и git
Это можно самому легко реализовать. Сделать проверку на соответсвие фалов и бд. И в случае если в бд записей больше, делать migrate down
Re: Миграции и git
откат миграций намного сложнее чем их накатывание. Не всегда можно миграцию откатить. Это данность. Приходится просто заново раскатывать дамп базы.
Re: Миграции и git
И как сделаете down пяти миграций из бд, когда в папке лежат только первые два файла?sosnovskiy писал(а): ↑2017.04.29, 14:13 Это можно самому легко реализовать. Сделать проверку на соответсвие фалов и бд. И в случае если в бд записей больше, делать migrate down
-
- Сообщения: 239
- Зарегистрирован: 2017.03.28, 20:03
Re: Миграции и git
Очевидно что никак. Моя идея не состоятельна
Re: Миграции и git
Тему можно закрывать. Как я понял, нету какого-то правильного решения. Из возможных вариантов можно отметить:
- отдельная бд для ветки
- делать дамп бд перед сменой ветки
- удалять бд и создавать заново из миграций
- отдельная бд для ветки
- делать дамп бд перед сменой ветки
- удалять бд и создавать заново из миграций