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 eine Tabelle, employees
in der 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 mir das gibt, ist, wie es scheint, als hätte es die Zeile völlig ignoriert t.string :emp_id
und sie zu einer ganzzahligen Spalte gemacht. Gibt es eine andere Möglichkeit, Rails die PRIMARY_KEY-Einschränkung (ich verwende PostgreSQL) für mich generieren zu lassen, ohne die SQL in einem execute
Aufruf schreiben zu müssen ?
HINWEIS : Ich weiß, dass es nicht am besten ist, Zeichenfolgenspalten als Primärschlüssel zu verwenden. Bitte keine Antworten, die nur das Hinzufügen eines ganzzahligen Primärschlüssels bedeuten. Ich kann trotzdem eine hinzufügen, aber diese Frage ist immer noch gültig.
rake db:migrate
Die automatisch generierte Schemadefinition enthält diese Einschränkung nicht!