Puede cambiar el valor predeterminado en una migración:
change_column :my_objects, :id, :integer, default: -> { "nextval('global_seq')" }
Es posible que desee utilizar :bigint en lugar de :integer dependiendo de cómo estén configuradas la secuencia y las tablas. Tienes que usar una lambda para el :default opción para obtener el nextval('global_seq') sin procesar expresión en la base de datos.
Es posible que también desee eliminar la secuencia anterior, AFAIK, tendría que usar connection.execute('drop sequence ...') por eso.
Si te saltas el :id predeterminado paso en su create_table entonces puede hacerlo todo cuando crea manualmente el :id columna:
create_table :my_objects, id: false do |t|
t.bigint :id, null: false, default: -> { "nextval('global_seq')" }
t.primary_key :id
...
end
De nuevo, la elección entre t.bigint y t.integer depende de qué tan grande quieras que sea tu PK.