Con Rails, ¿cómo puedo configurar mi clave principal para que no sea una columna de tipo entero?

Estoy usando las 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 la clave principal (en particular, una cadena). Para abstraerme de mi problema, digamos que hay una mesaemployees donde los empleados se identifican mediante una cadena alfanumérica, p. ej."134SNW".

He intentado 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ó completamente la línea.t.string :emp_id y siguió adelante y la convirtió en una columna entera. ¿Hay alguna otra manera de hacer que los rieles generen la restricción PRIMARY_KEY (estoy usando PostgreSQL) para mí, sin tener que escribir el SQL en unaexecute ¿llamada?

NOTA: Sé que no es mejor usar columnas de cadena como claves primarias, así que no hay respuestas que solo digan agregar una clave primaria entera. Puedo agregar uno de todos modos, pero esta pregunta sigue siendo válida.

Respuestas a la pregunta(12)

Su respuesta a la pregunta