2012-02-17 4 views
9

У нас есть около 100 файлов миграции базы данных. Многие из них делают изменения схемы необратимыми. Есть также более поздние миграции, которые изменяют или удаляют таблицы, которые были созданы в более ранних миграциях.У нас есть много файлов миграции базы данных - мы должны их хранить?

Мы создаем новые базы данных непосредственно из файла schema.rb, поэтому нам было интересно, есть ли какие-либо причины для сохранения полного набора миграций?

Мы создали бы новую миграцию, основанную на нашем существующем schema.rb.

ответ

7

Да, то, что вы предлагаете, считается лучшей практикой.

Я делал это с помощью своих старых приложений несколько раз. Вы захотите вернуть свои миграции где-то до тех пор, пока не будете удовлетворены, все хорошо, конечно, это важная часть обслуживания приложений - если у вас много старых миграций, можно сделать навсегда db:reset или получить новую среду разработки.

+0

Мы пробовали найти где-нибудь, о чем говорили, знаете ли вы о каких-либо сайтах или ресурсах, которые подробно рассказывают о рекомендациях по рельсам/базам данных? – roo

+0

@roo Я видел несколько сайтов «лучших практик», но ни один из них, похоже, специально не затрагивает эту проблему. Я воспринял это как наилучшую практику после обсуждения ее с некоторыми коллегами-рубистами в местном хакатоне; вряд ли научный, но, безусловно, рецензируемый. :) Если бы я стал спорить об этом случае как о лучшей практике, я бы сказал, что нет смысла загромождать любую вашу кодовую базу - включенные миграции - с историей, которую никто не может использовать. Если кто-то хочет прочитать историю базы данных для собственного образования, Гит будет вас охватить; нет причин для его нахождения в рабочей ветви. –

+0

Да, мы в значительной степени пришли к такому же выводу. Приятно знать, что у других был тот же разговор :) – roo

4

Я использую только rake db:setup и rake db:reset для установки новой базы данных, на производственном сервере или на новой машине разработки. Эти команды уже используют schema.rb или structure.sql для воссоздания базы данных.

Сказанное, действительно легко сделать копию schema.rb, использовать это как новую отправную точку и удалить все старые миграции.

Я предпочитаю сохранять свои миграции в исторических целях, но это вопрос вкуса.

 Смежные вопросы

  • Нет связанных вопросов^_^