Výchozí nastavení můžete změnit při migraci:
change_column :my_objects, :id, :integer, default: -> { "nextval('global_seq')" }
Možná budete chtít použít :bigint
místo :integer
podle toho, jak máte nastavenou sekvenci a tabulky. Pro :default
musíte použít lambda možnost získat nezpracovaný nextval('global_seq')
výraz do databáze.
Možná budete chtít zrušit i starou sekvenci, AFAIK byste museli použít connection.execute('drop sequence ...')
za to.
Pokud přeskočíte výchozí :id
krok ve vaší create_table
pak to všechno můžete udělat, když ručně vytvoříte :id
sloupec:
create_table :my_objects, id: false do |t|
t.bigint :id, null: false, default: -> { "nextval('global_seq')" }
t.primary_key :id
...
end
Opět volba mezi t.bigint
a t.integer
záleží na tom, jak velký chcete mít PK.