вопросы миграции rake db - PullRequest
       21

вопросы миграции rake db

0 голосов
/ 07 октября 2011

Некоторые вопросы по задачам миграции базы данных (rake db: migrate)

  • Имеет ли смысл переименовывать имена файлов, если есть орфографическая ошибка.(например, CreaetFoos.rb to CreateFoos.rb)
  • Я создал скрипт миграции (скажем, версия 3) по ошибке во время процесса разработки, и я хотел бы удалить его из git.Что если я уже перенесен на текущий уровень «6», я должен просто откатиться до «2», удалить сценарий миграции, соответствующий «3», из git и повторно запустить сценарии миграции.Будут ли schema_migrations содержать правильные данные в этом случае?
  • Я хотел бы создать сценарий миграции во время процесса разработки, но я не хочу, чтобы это рассматривалось как часть сценария миграции, если я не назову его завершенным(т.е. я не хочу, чтобы другие разработчики использовали неполный скрипт миграции, который проверен в git).Как мне справиться с этим?

1 Ответ

3 голосов
/ 07 октября 2011

Вопрос из нескольких частей! Позвольте мне ответить на них в соответствующих частях.

[Вопрос 1] Имеет ли смысл переименовывать имена файлов, если есть орфографическая ошибка.

Если это тебя так сильно беспокоит, да. Это бы меня тоже беспокоило.

[Вопрос 2] [Стена текста об удалении миграции]

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

Например, миграции, при которых целые таблицы удаляются случайно.

[Вопрос 3] Обработка миграций, совершенных с контролем версий

Лучше всего работать в своей собственной ветке, если вы собираетесь выполнять работу, которая является неполной. Сделав это, вы оставите основную ветвь (вероятно, "master") нетронутой и завершенной, что позволит другим разработчикам продолжить свою работу.

Как только вы перенесете эту миграцию, вы вернете эту ветку обратно в master.

...