Możesz zmienić ustawienie domyślne migracji:
change_column :my_objects, :id, :integer, default: -> { "nextval('global_seq')" }
Możesz użyć :bigint zamiast :integer w zależności od tego, jak ustawiona jest Twoja sekwencja i stoły. Musisz użyć lambda dla :default opcja uzyskania surowego nextval('global_seq') wyrażenie do bazy danych.
Możesz również usunąć starą sekwencję, AFAIK musisz użyć connection.execute('drop sequence ...') za to.
Jeśli pomijasz domyślny :id krok w create_table możesz to wszystko zrobić, ręcznie tworząc :id kolumna:
create_table :my_objects, id: false do |t|
t.bigint :id, null: false, default: -> { "nextval('global_seq')" }
t.primary_key :id
...
end
Ponownie, wybór między t.bigint i t.integer zależy od tego, jak duży ma być Twój PK.