Você pode alterar o padrão em uma migração:
change_column :my_objects, :id, :integer, default: -> { "nextval('global_seq')" }
Você pode querer usar
:bigint em vez de :integer dependendo de como sua sequência e tabelas estão configuradas. Você tem que usar um lambda para o :default opção para obter o nextval('global_seq') bruto expressão no banco de dados. Você pode querer descartar a sequência antiga também, AFAIK você teria que usar
connection.execute('drop sequence ...') por isso. Se você está pulando o padrão
:id passo em seu create_table então você pode fazer tudo ao criar manualmente o :id coluna:create_table :my_objects, id: false do |t|
t.bigint :id, null: false, default: -> { "nextval('global_seq')" }
t.primary_key :id
...
end
Novamente, a escolha entre
t.bigint e t.integer depende de quão grande você quer que seu PK seja.