Sie können die Standardeinstellung bei einer Migration ändern:
change_column :my_objects, :id, :integer, default: -> { "nextval('global_seq')" }
Vielleicht möchten Sie :bigint verwenden statt :integer abhängig davon, wie Ihre Sequenz und Tabellen eingerichtet sind. Sie müssen ein Lambda für :default verwenden Option, um den rohen nextval('global_seq') zu erhalten Ausdruck in die Datenbank.
Vielleicht möchten Sie auch die alte Sequenz löschen, AFAIK müssten Sie connection.execute('drop sequence ...') verwenden dafür.
Wenn Sie die Standardeinstellung :id überspringen Schritt in Ihrer create_table dann können Sie alles tun, indem Sie die :id manuell erstellen Spalte:
create_table :my_objects, id: false do |t|
t.bigint :id, null: false, default: -> { "nextval('global_seq')" }
t.primary_key :id
...
end
Wieder die Wahl zwischen t.bigint und t.integer hängt davon ab, wie groß Ihr PK sein soll.