Используя Rails, как я могу установить мой первичный ключ, чтобы он не был столбцом целого типа?

Я использую миграции Rails для управления схемой базы данных и создаю простую таблицу, в которой я хотел бы использовать нецелое значение в качестве первичного ключа (в частности, строку). Чтобы абстрагироваться от моей проблемы, скажем, есть таблицаemployees где сотрудники идентифицируются буквенно-цифровой строкой, например,"134SNW".

Я пытался создать таблицу в миграции следующим образом:

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

То, что это дает мне, - это то, что кажется полностью игнорирующимt.string :emp_id и пошел вперед и сделал его целочисленным столбцом. Есть ли какой-то другой способ заставить rails генерировать для меня ограничение PRIMARY_KEY (я использую PostgreSQL), без необходимости писать SQL вexecute вызов?

NOTEЯ знаю, что не лучше использовать строковые столбцы в качестве первичных ключей, поэтому, пожалуйста, не отвечайте, просто добавив целочисленный первичный ключ. Я могу добавить один в любом случае, но этот вопрос все еще актуален.

Ответы на вопрос(14)

Ваш ответ на вопрос