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

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.