現在、新しい自動インクリメント列を必要とする既存のモデルDocumentがあります。残念ながら、移行中にエラーが発生します。
私が取った手順は次のとおりです。
ruby script/generate migration add_index_column_to_Document
.rb
空のタイトルを適切に生成しました
20121220182429_add_index_column_to_document.rb
次に、ファイルを次のように編集しました。
class AddIndexColumnToDocument < ActiveRecord::Migration
def self.up
execute 'ALTER TABLE documents ADD index INT NOT NULL AUTO_INCREMENT PRIMARY KEY'
end
def self.down
execute 'ALTER TABLE documents DROP index'
end
end
次に、で移行を実行したrake db:migrate
ところ、次のエラーが発生しました。
== AddIndexColumnToDocument: migrating =======================================
-- execute("ALTER TABLE documents ADD index INT NOT NULL AUTO_INCREMENT PRIMARY KEY")
rake aborted!
An error has occurred, all later migrations canceled:
Mysql::Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INT NOT NULL AUTO_INCREMENT PRIMARY KEY' at line 1: ALTER TABLE documents ADD index INT NOT NULL AUTO_INCREMENT PRIMARY KEY
MySQLのバージョンは次のとおりapt-cache show mysql-server
です:5.5.28-0ubuntu0.12.04.2
残念ながら、私のSQLコードは、オンラインで見つけることができるすべての例のコードと一致しているため、なぜ機能しないのかわかりません。あなたが提供するかもしれないどんな助けにも前もって感謝します。