точно, что действительно обстреливает db:migrate, делают?

Я бы всегда использовал № 2. # 4 - действительно ужасный макет, и он может быть сделан только тем, кто считает, что метод должен иметь длину экрана в один размер, и сделает все, чтобы его запихнуть, а не рефакторинг кода !!!

23
задан happythenewsad 17 June 2009 в 13:55
поделиться

3 ответа

Каждый раз, когда вы создаете миграцию с использованием сценариев (например, script / generate модель ...) новая миграция добавляется в правильный каталог, готовый для синхронизации с реальной базой данных.

Фактически rake db: migrate просто проверяет, какие недостающие миграции все еще нужно применить к базе данных, не заботясь о предыдущих .

17
ответ дан 29 November 2019 в 01:43
поделиться

Миграция означает, что вы переходите от текущей версии к более новой (как сказано в первом ответе). Используя rake db:migrate, вы можете применить любые новые изменения к вашей схеме. Но если вы хотите откатиться к предыдущей миграции, вы можете использовать rake db:rollback, чтобы аннулировать ваши новые изменения, если они определены неправильно. Внимание: при этом ваши данные будут потеряны.

6
ответ дан 29 November 2019 в 01:43
поделиться

Когда вы используете миграции rails, автоматически создается таблица с именем schema_migrations , которая отслеживает, какие миграции были применены, сохраняя номер версии каждой миграции (это - это число, которое предшествует имени миграции в имени файла, например db / migrate / _20090617111204__migration.rb). Когда вы запускаете rake db: migrate для миграции вверх, будут выполняться только миграции, которые не выполнялись ранее (т.е. их версия не указана в таблице) (по этой причине изменение миграции, которая уже выполнено не будет иметь никакого эффекта при запуске db: migrate ). При миграции все версии, найденные в schema_migrations , которые больше версии, к которой вы выполняете откат, будут отменены.

24
ответ дан 29 November 2019 в 01:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: