Пометка миграций Rails как перенесенных

В итоге я эффективно продублировал 9 миграций. (Я думаю это потому, что я устанавливал/обновлял Gems и/или выполнял их миграции как на своей машине разработки, так и на рабочей машине, но на данном этапе я не совсем уверен.)

Я переместил один набор из 9 дубликатов из каталогов rails на производственный сервер, но теперь, когда я хочу 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 забыть обо всех ожидающих миграциях, эффективно король всех незавершенных миграций выполнен?

16
задан David Oliver 7 November 2016 в 13:04
поделиться