Anda dapat mengubah default dalam migrasi:
change_column :my_objects, :id, :integer, default: -> { "nextval('global_seq')" }
Anda mungkin ingin menggunakan :bigint bukannya :integer tergantung pada bagaimana urutan dan tabel Anda diatur. Anda harus menggunakan lambda untuk :default opsi untuk mendapatkan nextval('global_seq') mentah mentah ekspresi ke dalam database.
Anda mungkin ingin membuang urutan lama juga, AFAIK Anda harus menggunakan connection.execute('drop sequence ...') untuk itu.
Jika Anda melewatkan :id default langkah di create_table . Anda maka Anda dapat melakukan semuanya ketika Anda secara manual membuat :id kolom:
create_table :my_objects, id: false do |t|
t.bigint :id, null: false, default: -> { "nextval('global_seq')" }
t.primary_key :id
...
end
Sekali lagi, pilihan antara t.bigint dan t.integer tergantung pada seberapa besar Anda ingin PK Anda.