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" при сохранении миграционной записи.

Есть идеи, как это сделать в одном файле миграции?

0 ответов