我目前有一个现有模型 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 代码与我可以在网上找到的所有示例相匹配,所以我不确定它为什么不起作用。提前感谢您提供的任何帮助。