Wie kann ich mit Rails festlegen, dass mein Primärschlüssel keine Ganzzahlspalte ist?

Ich verwende Rails-Migrationen zum Verwalten eines Datenbankschemas und erstelle eine einfache Tabelle, in der ich einen nicht ganzzahligen Wert als Primärschlüssel (insbesondere eine Zeichenfolge) verwenden möchte. Nehmen wir an, es gibt einen Tisch, um von meinem Problem wegzukommenemployees Wenn Mitarbeiter durch eine alphanumerische Zeichenfolge identifiziert werden, z."134SNW".

Ich habe versucht, die Tabelle in einer Migration wie folgt zu erstellen:

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

Was dies mir gibt, ist, wie es scheint, die Linie völlig ignoriertt.string :emp_id und ging voran und machte es eine Ganzzahlspalte. Gibt es eine andere Möglichkeit, mit Rails die PRIMARY_KEY-Einschränkung (ich verwende PostgreSQL) für mich zu generieren, ohne die SQL in eine zu schreiben?execute Anruf?

HINWEIS: Ich weiß, dass es nicht am besten ist, Zeichenfolgenspalten als Primärschlüssel zu verwenden. Bitte antworten Sie nicht, wenn Sie nur einen ganzzahligen Primärschlüssel hinzufügen möchten. Ich kann sowieso eine hinzufügen, aber diese Frage ist immer noch gültig.

Antworten auf die Frage(12)

Ihre Antwort auf die Frage