Я закончил с 9 миграциями, которые были эффективно дублированы. (Я думаю, это связано с тем, что я установил/обновил Gems и/или потянул их миграции на обоих моих dev и производственных машинах, но на данном этапе я не совсем уверен.)
Я переместил один набор дублированных 9 из каталогов рельсов на производственном сервере, но теперь, когда я хочу db:migrate
для производства, чтобы запустить другую миграцию, я получаю:
$ bundle exec rake db:migrate RAILS_ENV=production
[DEPRECATION WARNING] Nested I18n namespace lookup under "activerecord.attributes.checkout" is no longer supported
== CreatePages: migrating ====================================================
-- create_table(:pages)
rake aborted!
An error has occurred, all later migrations canceled:
Mysql2::Error: Table 'pages' already exists: CREATE TABLE `pages` (`id` int(11) DEFAULT NULL auto_increment PRIMARY KEY, `title` varchar(255), `body` text, `slug` varchar(255), `created_at` datetime, `updated_at` datetime) ENGINE=InnoDB
Это связано с тем, что миграция уже выполнена.
Я бы предпочел не делать db:migrate:down
и db:migrate:up
для каждого из них - я думаю, это будет означать, что данные в производственной базе данных теряются. (В этом случае пара статических страниц в Spree.)
Можно ли указать эту установку Rails, чтобы забыть все выдающиеся миграции, эффективно отмечая все выдающиеся миграции как выполненные?