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