Adding a sequence to a migration

10 views
Skip to first unread message

Peter Hickman

unread,
Jul 13, 2011, 10:08:20 AM7/13/11
to rubyonra...@googlegroups.com
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?

Tim Shaffer

unread,
Jul 13, 2011, 10:10:59 AM7/13/11
to rubyonra...@googlegroups.com
What database are you using? I'm not aware of a "sequence" data type.

Peter Hickman

unread,
Jul 13, 2011, 10:12:43 AM7/13/11
to rubyonra...@googlegroups.com
PostgreSQL has them, as do most DBs. This is where the ids come from.

On 13 July 2011 15:10, Tim Shaffer <timsh...@me.com> wrote:
> What database are you using? I'm not aware of a "sequence" data type.
>

> --
> You received this message because you are subscribed to the Google Groups
> "Ruby on Rails: Talk" group.
> To view this discussion on the web visit
> https://groups.google.com/d/msg/rubyonrails-talk/-/qARmDs2QsEEJ.
> To post to this group, send email to rubyonra...@googlegroups.com.
> To unsubscribe from this group, send email to
> rubyonrails-ta...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/rubyonrails-talk?hl=en.
>

Tim Shaffer

unread,
Jul 13, 2011, 11:14:00 AM7/13/11
to rubyonra...@googlegroups.com
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?

Peter Hickman

unread,
Jul 13, 2011, 2:03:30 PM7/13/11
to rubyonra...@googlegroups.com
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

> --
> You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.

> To view this discussion on the web visit https://groups.google.com/d/msg/rubyonrails-talk/-/xm6ubJwDWqoJ.

Walter Lee Davis

unread,
Jul 13, 2011, 2:48:57 PM7/13/11
to rubyonra...@googlegroups.com
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

> To post to this group, send email to rubyonrails-
> ta...@googlegroups.com.

Reply all
Reply to author
Forward
0 new messages