Estoy usando migraciones de Rails para administrar un esquema de base de datos y estoy creando una tabla simple en la que me gustaría usar un valor no entero como clave principal (en particular, una cadena). Para abstraerme de mi problema, digamos que hay una tabla employees
donde los empleados se identifican mediante una cadena alfanumérica, por ejemplo "134SNW"
.
Intenté crear la tabla en una migración como esta:
create_table :employees, {:primary_key => :emp_id} do |t|
t.string :emp_id
t.string :first_name
t.string :last_name
end
Lo que esto me da es lo que parece que ignoró por completo la línea t.string :emp_id
y siguió adelante y la convirtió en una columna entera. ¿Hay alguna otra forma de que los rieles generen la restricción PRIMARY_KEY (estoy usando PostgreSQL) por mí, sin tener que escribir el SQL en una execute
llamada?
NOTA : Sé que no es mejor usar columnas de cadena como claves primarias, así que no responda simplemente diciendo que agregue una clave primaria entera. Puedo agregar uno de todos modos, pero esta pregunta sigue siendo válida.