Railsの移行を通じて、テーブルで主キーIDを以下のように定義したい
id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT
私はmysqldbを使用しています。
Railsの移行を通じて、テーブルで主キーIDを以下のように定義したい
id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT
私はmysqldbを使用しています。
私はこれで解決しました
create_table things, :id => false do |t|
t.column :id, 'INT UNSIGNED NOT NULL AUTO_INCREMENT, PRIMARY KEY (id)'
t.string :name
...
また
create_table things, :id => false do |t|
t.column :id, ID_COLUMN
t.string :name
...
ここで、ID_COLUMNは一部の構成/モジュールで定義され、他の移行でも使用されます
#execute
移行内で必要な SQL を使用するだけです。
execute "ALTER TABLE things MODIFY id UNSIGNED(10) NOT NULL AUTO_INCREMENT"
または、列がまだまったく存在しない場合:
execute "ALTER TABLE things ADD COLUMN id UNSIGNED(10) NOT NULL AUTO_INCREMENT PRIMARY KEY"
それはうまくいくはずです。移行では、純粋な SQL にドロップダウンしても問題ないと思います。多くの場合、それが必要です。