Миграции и git

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
germanow
Сообщения: 8
Зарегистрирован: 2017.04.24, 09:50
Откуда: Украина

Миграции и git

Сообщение germanow »

Есть вопрос по поводу использования миграций и веток в git. Насколько я понял миграции существую, чтобы связать состояние кода с состоянием базы данных.
Допустим у меня есть основная ветка со своими миграциями и соответственно таблицами в базе данных. Я создаю новую ветку для экспериментов и создаю там свои миграции и применяю их к базе. В какой-то момент мне захочется вернуться в основную ветку. Я перехожу но база данных то остаётся, yii migrate будет говорить что все в порядке. В таком случае как поступают правильно? Удаляют все таблицы и создают заново из миграций находящихся в конкретной ветке? То есть придется при каждом переключении пересоздавать базу. Я уже молчу про слияние веток с разными миграциями. В интернете не нашел полного ответа, может подскажете статью на эту тему.
sosnovskiy
Сообщения: 239
Зарегистрирован: 2017.03.28, 20:03

Re: Миграции и git

Сообщение sosnovskiy »

Как вариант перед git checkout делать migrate/down до нужного состояния. Но это только если у вас во всех миграциях есть down и он не возвращает false
Аватара пользователя
chungachguk
Сообщения: 435
Зарегистрирован: 2012.07.17, 11:52

Re: Миграции и git

Сообщение chungachguk »

Как вариант попробуй в настройках подключения указывать разный префикс БД для разных веток, а при запуске миграции указывать разные таблицы миграции.
germanow
Сообщения: 8
Зарегистрирован: 2017.04.24, 09:50
Откуда: Украина

Re: Миграции и git

Сообщение germanow »

Все это похоже на полумеры. Хотелось бы чтоб yii migrate понимал, что в таблице migrations больше миграций чем в папке migrations и само пересоздавало базу, конечно по умолчанию такое поведение выглядит стремным, но если б был какой-то флаг.
sosnovskiy
Сообщения: 239
Зарегистрирован: 2017.03.28, 20:03

Re: Миграции и git

Сообщение sosnovskiy »

Это можно самому легко реализовать. Сделать проверку на соответсвие фалов и бд. И в случае если в бд записей больше, делать migrate down
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Миграции и git

Сообщение zelenin »

откат миграций намного сложнее чем их накатывание. Не всегда можно миграцию откатить. Это данность. Приходится просто заново раскатывать дамп базы.
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Миграции и git

Сообщение ElisDN »

sosnovskiy писал(а): 2017.04.29, 14:13 Это можно самому легко реализовать. Сделать проверку на соответсвие фалов и бд. И в случае если в бд записей больше, делать migrate down
И как сделаете down пяти миграций из бд, когда в папке лежат только первые два файла?
sosnovskiy
Сообщения: 239
Зарегистрирован: 2017.03.28, 20:03

Re: Миграции и git

Сообщение sosnovskiy »

Очевидно что никак. Моя идея не состоятельна
germanow
Сообщения: 8
Зарегистрирован: 2017.04.24, 09:50
Откуда: Украина

Re: Миграции и git

Сообщение germanow »

Тему можно закрывать. Как я понял, нету какого-то правильного решения. Из возможных вариантов можно отметить:
- отдельная бд для ветки
- делать дамп бд перед сменой ветки
- удалять бд и создавать заново из миграций
Ответить