Sto usando le migrazioni di Rails per gestire uno schema di database e sto creando una semplice tabella in cui vorrei usare un valore non intero come chiave primaria (in particolare, una stringa). Per astrarre dal mio problema, supponiamo che ci sia una tabella in employees
cui i dipendenti sono identificati da una stringa alfanumerica, ad es "134SNW"
.
Ho provato a creare la tabella in una migrazione come questa:
create_table :employees, {:primary_key => :emp_id} do |t|
t.string :emp_id
t.string :first_name
t.string :last_name
end
Ciò che questo mi dà è ciò che sembra che abbia completamente ignorato la riga t.string :emp_id
e sia andato avanti e ne abbia fatto una colonna intera. C'è qualche altro modo per fare in modo che rails generi il vincolo PRIMARY_KEY (sto usando PostgreSQL) per me, senza dover scrivere l'SQL in una execute
chiamata?
NOTA : So che non è meglio usare colonne di stringhe come chiavi primarie, quindi per favore nessuna risposta dicendo solo di aggiungere una chiave primaria intera. Posso aggiungerne uno comunque, ma questa domanda è ancora valida.