我在 Rails 6.1 项目中有这样的迁移:
create_table "items", id: false do |t|
t.string "serial_no", limit: 20, first: true, null: false, index: {unique: true}
t.float "price", null: false
t.integer "company_id", limit: 2, null: false
t.integer "product_id", null: false
end
cols = # whatever
values = # whatever
ActiveRecord::Base.connection.execute("INSERT INTO items (#{cols}) VALUES #{values};")
我收到错误:PG::UndefinedTable: ERROR: relation "items" does not exist
我知道如果我将它们分成两个文件,它们会起作用,但我希望这些插入在同一个迁移文件中。
ActiveRecord::Base.connection.commit_db_transaction
我在插入语句之前尝试过,它起作用了,但是ERROR: duplicate key value violates unique constraint "schema_migrations_pkey"
在保存迁移记录的同时引发了。
任何想法如何在单个迁移文件中做到这一点?