Używam migracji Rails do zarządzania schematem bazy danych i tworzę prostą tabelę, w której chciałbym użyć wartości niecałkowitej jako klucza podstawowego (w szczególności ciągu). Aby oderwać się od mojego problemu, załóżmy, że istnieje tabela, w employees
której pracownicy są identyfikowani za pomocą ciągu alfanumerycznego, np "134SNW"
.
Próbowałem utworzyć tabelę w migracji w następujący sposób:
create_table :employees, {:primary_key => :emp_id} do |t|
t.string :emp_id
t.string :first_name
t.string :last_name
end
To, co mi to daje, to coś, co wygląda na to, że całkowicie zignorował linię t.string :emp_id
i poszedł dalej i uczynił go kolumną całkowitą. Czy istnieje inny sposób na wygenerowanie przez szyny ograniczenia PRIMARY_KEY (używam PostgreSQL) bez konieczności pisania kodu SQL w execute
wywołaniu?
UWAGA : Wiem, że nie najlepiej jest używać kolumn łańcuchowych jako kluczy podstawowych, więc nie udzielaj odpowiedzi, mówiąc tylko o dodaniu klucza podstawowego w postaci całkowitej. I tak mogę dodać jedno, ale to pytanie jest nadal aktualne.