Forum: Ruby on Rails Non-standard primary key column

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
2f24c382600d9fd71085a74251fd5a39?d=identicon&s=25 Damian Terentyev (Guest)
on 2007-01-18 12:21
(Received via mailing list)
Good day!
I've recently started to develop under rails.
I have a migration that should create a table, and I want the primary
key id to be not standard auto-incrementing integer but explicitly
given string.
I have language codes and language native names in the table so I don't
want either to keep that meaningless integer id in the db or to have it
appear in the uri.
The first question is, does this seriously compromise rails' magic?
Will scaffolding work?
The second question is, the migration doesn't work as I suppose it
should.
It is

class CreateLanguages < ActiveRecord::Migration
   def self.up
     create_table :languages,  {:id=>false} do |t|
    t.column :id, :string, {:limit=>12}
    t.column :name, :string, {:limit=>60, :null=>false}
    t.primary_key :id
     end
   end

But what is created is like the last line is ignored

`id` varchar(12) default NULL,
  `name` varchar(60) NOT NULL

I'm using MySQL 5.0

Could you please clarify this behaviour and make a suggestion?

Your sincerely,
Damian/Three-eyed Fish
70ca58d0e0e0eabbdb74d177417d09d7?d=identicon&s=25 augustlilleaas@gmail.com (Guest)
on 2007-01-18 12:59
(Received via mailing list)
Yes, this seriously compromises rails' magic. It expects an auto
incremented integer.

I'm not sure about the t.primary_key method, but this should work:

def self.up
  execute "ALTER TABLE languages ADD id string(12) DEFAULT NULL PRIMARY
KEY"
end

A bit not-so-clean, though.
2f24c382600d9fd71085a74251fd5a39?d=identicon&s=25 Damian Terentyev (Guest)
on 2007-01-18 15:43
(Received via mailing list)
On Jan 18, 2007, at 14:58, augustlilleaas@gmail.com wrote:

> Yes, this seriously compromises rails' magic. It expects an auto
> incremented integer.

Thank you!
I hope I will change my thinking and implement my system in a more
railish way.

Your sincerely,
Damian/Three-eyed Fish
This topic is locked and can not be replied to.