Hello, I am currently mapping ActiveRecord to an existent database system and there is one oddity in it: the primary key starts with 1 and not with 0 and it is not even marked as auto increment. I can''t change the table or the column names since it would brake this legacy structure. So my question is, how do I force ActiveRecord to automatically create primary key values max + 1, where max is either 0 if no entry is existent or the max primary key value in the table. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Andrius Bentkus wrote in post #957976:> Hello, > I am currently mapping ActiveRecord to an existent database system and > there is one oddity in it: the primary key starts with 1 and not with > 0 and it is not even marked as auto increment. > I can''t change the table or the column names since it would brake this > legacy structure. > > So my question is, how do I force ActiveRecord to automatically create > primary key values max + 1, where max is either 0 if no entry is > existent or the max primary key value in the table.This would be done on the database side, not in Rails. You need to mark the column as auto-increment. Best, -- Marnen Laibow-Koser http://www.marnen.org marnen-sbuyVjPbboAdnm+yROfE0A@public.gmane.org -- Posted via http://www.ruby-forum.com/. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
On Oct 29, 4:16 pm, Marnen Laibow-Koser <li...-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org> wrote:> Andrius Bentkus wrote in post #957976: > > > Hello, > > I am currently mapping ActiveRecord to an existent database system and > > there is one oddity in it: the primary key starts with 1 and not with > > 0 and it is not even marked as auto increment. > > I can''t change the table or the column names since it would brake this > > legacy structure. > > > So my question is, how do I force ActiveRecord to automatically create > > primary key values max + 1, where max is either 0 if no entry is > > existent or the max primary key value in the table. > > This would be done on the database side, not in Rails. You need to mark > the column as auto-increment. >I really don''t want to touch the database at all, I would like to have this done all by overriding some ActiveRecord methods. On the other side, how do i mark the column as auto-increment with AR?> Best, > -- > Marnen Laibow-Koserhttp://www.marnen.org > mar...-sbuyVjPbboAdnm+yROfE0A@public.gmane.org > > -- > Posted viahttp://www.ruby-forum.com/.-- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Andrius Bentkus wrote in post #958108:> On Oct 29, 4:16pm, Marnen Laibow-Koser <li...-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org> wrote: >> > primary key values max + 1, where max is either 0 if no entry is >> > existent or the max primary key value in the table. >> >> This would be done on the database side, not in Rails. You need to mark >> the column as auto-increment. >> > > I really don''t want to touch the database at all, I would like to have > this done all by overriding some ActiveRecord methods.That is a bad idea. The database should be controlling the autoincrementation. AR should not be.> On the other side, how do i mark the column as auto-increment with AR?You don''t AFAIK. You mark it as auto-increment in the DB. You are trying to reinvent DB features in the application layer. This is a dreadful idea. Don''t waste your time. Best, -- Marnen Laibow-Koser http://www.marnen.org marnen-sbuyVjPbboAdnm+yROfE0A@public.gmane.org -- Posted via http://www.ruby-forum.com/. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.