Du kan ændre standarden i en migrering:
change_column :my_objects, :id, :integer, default: -> { "nextval('global_seq')" }
Du vil måske bruge :bigint
i stedet for :integer
afhængig af hvordan din rækkefølge og tabeller er sat op. Du skal bruge en lambda til :default
mulighed for at hente den rå nextval('global_seq')
udtryk ind i databasen.
Du vil måske også droppe den gamle sekvens, AFAIK skal du bruge connection.execute('drop sequence ...')
for det.
Hvis du springer standard :id
over trin i din create_table
så kan du gøre det hele, når du manuelt opretter :id
kolonne:
create_table :my_objects, id: false do |t|
t.bigint :id, null: false, default: -> { "nextval('global_seq')" }
t.primary_key :id
...
end
Igen, valget mellem t.bigint
og t.integer
afhænger af, hvor stor du vil have din PK til at være.