0

我在 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"在保存迁移记录的同时引发了。

任何想法如何在单个迁移文件中做到这一点?

4

0 回答 0