Rails 6、如何创建带有迁移的自定义主键?
Rails 6, how can I create custom primary key with migration?
我正在尝试在 rails 6 中创建自定义主键,但没有创建主键,
它创建了正常的 id。
我已经迁移
def change
create_table(:m_user_status, :id => false) do |t|
t.integer :id, :options => 'PRIMARY KEY'
t.string :status_name, limit: 20
t.integer :status_check
t.timestamps
end
从上面刚刚创建了 int4 类型的 id,但我想创建 int4 类型的 id 和主键而不自增。
我如何在没有自动递增的情况下给出 id 并输入 int4(整数正常)
您可以根据此处的文档组合 :id
和 :primary_key
选项:https://apidock.com/rails/ActiveRecord/ConnectionAdapters/SchemaStatements/create_table
例如:
class CreatedummyTable < ActiveRecord::Migration[6.0]
def change
create_table :dummy_table, id: :int4, primary_key: :foo do |t|
t.timestamps
end
end
end
在 postgres 中创建此模式:
create_table "dummy_table", primary_key: "foo", id: :integer, default: nil, force: :cascade do |t|
t.datetime "created_at", precision: 6, null: false
t.datetime "updated_at", precision: 6, null: false
end
我正在尝试在 rails 6 中创建自定义主键,但没有创建主键, 它创建了正常的 id。
我已经迁移
def change
create_table(:m_user_status, :id => false) do |t|
t.integer :id, :options => 'PRIMARY KEY'
t.string :status_name, limit: 20
t.integer :status_check
t.timestamps
end
从上面刚刚创建了 int4 类型的 id,但我想创建 int4 类型的 id 和主键而不自增。 我如何在没有自动递增的情况下给出 id 并输入 int4(整数正常)
您可以根据此处的文档组合 :id
和 :primary_key
选项:https://apidock.com/rails/ActiveRecord/ConnectionAdapters/SchemaStatements/create_table
例如:
class CreatedummyTable < ActiveRecord::Migration[6.0]
def change
create_table :dummy_table, id: :int4, primary_key: :foo do |t|
t.timestamps
end
end
end
在 postgres 中创建此模式:
create_table "dummy_table", primary_key: "foo", id: :integer, default: nil, force: :cascade do |t|
t.datetime "created_at", precision: 6, null: false
t.datetime "updated_at", precision: 6, null: false
end