W jaki sposób, używając Rails, mogę ustawić klucz podstawowy tak, aby nie był kolumną o typie całkowitym?

Używam migracji Railsów do zarządzania schematem bazy danych i tworzę prostą tabelę, w której chciałbym użyć wartości niecałkowitej jako klucza podstawowego (w szczególności łańcucha). Aby oddalić się od mojego problemu, powiedzmy, że istnieje stółemployees gdzie pracownicy są identyfikowani przez ciąg alfanumeryczny, np."134SNW".

Próbowałem utworzyć tabelę w migracji w następujący sposób:

create_table :employees, {:primary_key => :emp_id} do |t|
    t.string :emp_id
    t.string :first_name
    t.string :last_name
end

To, co mi to daje, wydaje się całkowicie ignorować linięt.string :emp_id i poszedł dalej i uczynił z niego kolumnę całkowitą. Czy jest jakiś inny sposób na wygenerowanie przez szyny ograniczenia PRIMARY_KEY (używam PostgreSQL) dla mnie, bez konieczności pisania SQL wexecute połączenie?

UWAGA: Wiem, że nie jest najlepiej używać kolumn ciągów jako kluczy podstawowych, więc proszę nie odpowiadać tylko, aby dodać klucz podstawowy liczby całkowitej. I tak mogę dodać jeden, ale to pytanie jest nadal ważne.

questionAnswers(12)

yourAnswerToTheQuestion