Adding a sequence to a migration

I want a field in my table to be a sequence that is not the id of the record. Something like

create_table :foo do |t|   ...   t.sequence :seq   ... end

Is there a clean way of doing this in migrations or will I end up having to hack something. Like having an integer field and copying in the id in an after_create filter?

What database are you using? I’m not aware of a “sequence” data type.

PostgreSQL has them, as do most DBs. This is where the ids come from.

Not quite. The id column is just an integer column.

On MySQL, the id column is an integer column with auto_increment set.

On PostgreSQL, it’s still an integer column, but rails also attaches a sequence object to it.

Are you just looking to create another integer column that is auto incremented?

Yes, in PostgrSQL you would create an integer column and assign a sequence to it. I don't know for sure but I expect that you cam do something similar with other databases. I was wondering if this had been abstracted away in ar

It's very definitely abstracted away in migrations. You write one basic migration, and the database adapter you've chosen takes care of these implementation details for you. I can use the same migration on my Mac with SQLite and on Heroku with PostgreSQL. No changes needed.

Walter