ActiveRecord :id offset

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.

On Oct 29, 4:16pm, Marnen Laibow-Koser [email protected] 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.
On the other side, how do i mark the column as auto-increment with AR?

Andrius Bentkus wrote in post #958108:

On Oct 29, 4:16pm, Marnen Laibow-Koser [email protected] 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
[email protected]

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
[email protected]

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs