Rails:如何在迁移中设置Schema.define(version:xxxxxx)?

时间:2018-10-18 20:19:17

标签: ruby-on-rails rspec migration tdd rspec-rails

我目前有一个名为20180610150713_create_database_structure.rb的迁移文件 在其中,我正在创建具有以下结构的数据库

class CreateDatabaseStructure < ActiveRecord::Migration[5.1]
  def change
    ActiveRecord::Schema.define(version: 20180610150713) do 
      create_table :products do |t|
      t.string :name
      t.text :description

      t.timestamps
      end
      # create everything
    end
  end
end

但是,当我运行rails db:drop db:create db:migrate命令时,出现以下错误:

rails aborted!
StandardError: An error has occurred, all later migrations canceled:

Mysql2::Error: Duplicate entry '20180610150713' for key 'PRIMARY': INSERT INTO `schema_migrations` (`version`) VALUES ('20180613180630')

尽管它已执行了应该正确执行的操作,但后来停止了迁移。当我开始从事此项目时,此功能过去还不错,而最近才突然停止。

在应用程序内部更改迁移时间戳会“修复它”,但是由于这已经投入生产,所以我不希望它与生产数据库中的其他内容混淆。

P.S。 此迁移文件已在生产中。

0 个答案:

没有答案