微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Rails - 在单个迁移文件中创建表和插入数据

如何解决Rails - 在单个迁移文件中创建表和插入数据

我在 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"

任何想法如何在单个迁移文件中执行此操作?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。