Я використовую міграції 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
дзвінку?
ПРИМІТКА . Я знаю, що не найкраще використовувати рядкові стовпці в якості первинних ключів, тому, будь ласка, жодних відповідей просто не слід сказати, щоб додати цілочисельний первинний ключ. Я все одно можу додати один, але це питання все ще є актуальним.