banditKing
banditKing

Reputation: 9579

how to add a primary key to a table in rails

Hi I have a table in my rails app that doesnt have any id column or primary key. thats because this table was brought into my rails app from a previous app and the table is prepopulated with data. I now realize that without a integer primary key, rails cannot display edit and show views in the browser. So i ned to add a id column to my database that is a primary key and that autoincrements.

Based on my googling, I came across a few posts about creating primary keys for a table but nothing that was complete.

So Im wondering if someone can give me a hand here. So far what I know is in order to change the table one must write a migration and then run it. The command that needs to be run for adding a id column is as follows:

rails generate migration add_id_to_businesses id:primary_key

However after running this command no new column is added to my database. Im not sure how to proceed.. How do I add a new column to my database?

Would really appreciate a hand..... Thanks,

Upvotes: 22

Views: 18980

Answers (1)

Sandip Ransing
Sandip Ransing

Reputation: 7733

rails g migration add_id_to_products id:primary_key

      invoke  active_record
      create    db/migrate/20120310085527_add_id_to_products.rb

Migration file should look like -

   # db/migrate/20120310085527_add_id_to_products.rb
   class AddIdToProducts < ActiveRecord::Migration
     def change
        add_column :products, :id, :primary_key
     end
   end

Upvotes: 32

Related Questions