Вы не можете запустить db:migrate
снова, потому что я думаю, что вы уже в последней миграции.
a) Если миграция, которую вы пытаетесь воссоздать, является самой последней, вы можете выполнить следующее, чтобы откатить ее, а затем снова запустить.
rake db:rollback
rake db:migrate
b) Если это не последняя миграция, необходимо перечислить файлы в каталоге db/migrate
, аннотировать версию предыдущей миграции в 20120311145341_create_resource1s.rb и затем выполнить:
rake db:migrate VERSION=20120309101821
(измените версию на нужную для вас)
rake db:migrate
Обратите внимание , если вы получаете ошибку, подобную этой Mysql2::Error: Unknown table 'xxx': DROP TABLE 'xxx'
вы можете обойти его, проверив наличие таблицы в методе миграции вниз:
def self.down
drop_table :xxx if ActiveRecord::Base.connection.table_exists? 'xxx'
end
Надеюсь, это поможет.