主キーがintではなく文字列である移行を介してレールでテーブルを作成する適切な方法は何ですか?
primary_key
以下の回答で@oldergodが提案したように設定しようとしましbaz
たが、静止画に設定されているようですint
:
class CreateFoos < ActiveRecord::Migration
def change
create_table :foos, primary_key: 'baz' do |t|
end
end
end
アップデート
それ以来試しました
class CreateFoos < ActiveRecord::Migration
def change
create_table :foos, primary_key: false do |t|
t.string :baz
end
end
end
これで少し近づきますが、列の PRIMARY インデックスがまだありません。試してみましadd_index :foos, :baz, type: :primary
たが、これにより次のエラーが生成されます。
SQLite3::SQLException: near "primary": syntax error: CREATE primary INDEX "index_foos_on_baz" ON "foos" ("baz")/Users/kyledecot/.rvm/gems/ruby-1.9.3-p392/gems/sqlite3-1.3.8/lib/sqlite3/database.rb:91:in `initialize'
http://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/SchemaStatements.html#method-i-add_index_optionsを見た後、これはうまくいくようです