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