我正在以下列方式迁移SQL数据库:
class CitiesRelation < ActiveRecord::Migration[5.0]
def change
self.connection.execute %Q(
-- Create Table --
CREATE TABLE Cities (
Id INT NOT NULL AUTO_INCREMENT,
Code INT NOT NULL,
Name VARCHAR(255) NOT NULL,
State CHAR(2) NOT NULL,
PRIMARY KEY (Id)
);
-- Insert Data --
Insert into Cities (Code, Name, State) values ('1100015','City_1', 'A');
Insert into Cities (Code, Name, State) values ('1100023','City_2', 'B');
Insert into Cities (Code, Name, State) values ('1100031','City_3', 'C');
)
end
end
迁移后显示此错误消息:
PG::SyntaxError: ERROR: syntax error at or near "AUTO_INCREMENT"
LINE 6: Id INT NOT NULL AUTO_INCREMENT,
^
解决这个问题的最佳方法是什么?我想知道通过种子这样做,但我不知道如何。谢谢。
请尝试以下第9.6页
CREATE TABLE Cities (
Id serial PRIMARY KEY,
Code INT NOT NULL,
Name VARCHAR(255) NOT NULL,
State CHAR(2) NOT NULL
);
第10页或后者
CREATE TABLE staff (
Id int GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
Code INT NOT NULL,
Name VARCHAR(255) NOT NULL,
State CHAR(2) NOT NULL
);
为什么你不试试rails正常的方式
class CitiesRelation < ActiveRecord::Migration[5.0]
def change
create_table :cities do |t|
t.string :Code, null: false
t.string :Name, null: false
t.string :State, null: false
t.timestamps
end
end
end
Rails默认创建id
然后rake db:migrate
希望能帮助到你