Usando o Rails, como posso definir minha chave primária para não ser uma coluna com números inteiros?

Estou usando migrações Rails para gerenciar um esquema de banco de dados e estou criando uma tabela simples onde gostaria de usar um valor não-inteiro como a chave primária (em particular, uma string). Para abstrair longe do meu problema, digamos que há uma mesaemployees onde os funcionários são identificados por uma string alfanumérica, por exemplo"134SNW".

Eu tentei criar a tabela em uma migração como esta:

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

O que isso me dá é o que parece que ignorou completamente a linhat.string :emp_id e foi em frente e fez uma coluna inteira. Existe alguma outra maneira de ter rails gerar a restrição PRIMARY_KEY (estou usando o PostgreSQL) para mim, sem ter que escrever o SQL em umexecute ligar?

NOTA: Eu sei que não é melhor usar colunas de strings como chaves primárias, então por favor, não há respostas apenas dizendo para adicionar uma chave primária inteira. Eu posso adicionar um de qualquer maneira, mas esta questão ainda é válida.

questionAnswers(12)

yourAnswerToTheQuestion