Я использую 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
?
ПРИМЕЧАНИЕ : я знаю, что не лучше использовать строковые столбцы в качестве первичных ключей, поэтому, пожалуйста, не отвечайте, просто добавив целочисленный первичный ключ. Я могу добавить один в любом случае, но этот вопрос остается в силе.