Kijk eens naar dit antwoord. Probeer execute "ALTER TABLE shareholders ADD PRIMARY KEY (uid);"
zonder de parameter primary_key op te geven in het create_table-blok.
Ik stel voor om uw migratie als volgt te schrijven (zodat u normaal kunt terugdraaien):
class CreateShareholders < ActiveRecord::Migration
def up
create_table :shareholders, id: false do |t|
t.integer :uid, limit: 8
t.string :name
t.integer :shares
t.timestamps
end
execute "ALTER TABLE shareholders ADD PRIMARY KEY (uid);"
end
def down
drop_table :shareholders
end
end
UPD: Er is een natuurlijke manier (hier te vinden), maar alleen met int4-type:
class CreateShareholders < ActiveRecord::Migration
def change
create_table :shareholders, id: false do |t|
t.primary_key :uid
t.string :name
t.integer :shares
t.timestamps
end
end
end