无法为在Elastic Beanstalk上运行的Rails应用设置AWS RDS。我跟着the docs,但是当它尝试运行迁移时,我得到了MySQL语法错误。很确定我没有语法错误,因为迁移在本地运行良好,我成功设置了一个分段,错误在第一行。我认为它可能与阻止流量的安全组有关,但我更新了我的入站规则并仍然得到错误:
3306 tcp 173.8.166.54/32, sg-3221b354 <- RDs Security Group
80 tcp 0.0.0.0/0, ::/0, sg-3b31a75d
22 tcp 0.0.0.0/0
443 tcp 0.0.0.0/0
我为db设置了环境变量。我错过了什么?
我得到的错误:发生在第一次迁移的第一行
Mysql2 ::错误:您的SQL语法中有错误;检查与MySQL服务器版本对应的手册,以便在'json,
image
varchar(255),code
varchar(255),created_at
datetime NOT NULL'附近使用正确的语法。第1行:CREATE TABLEcoupons
(id
int AUTO_INCREMENT PRIMARY KEY,product
varchar(255),offer
varchar(255),size
varchar(255 ),description
varchar(255),info
json,image
varchar(255),code
varchar(255),created_at
datetime NOT NULL,{{ 1}} datetime NOT NULL)ENGINE = InnoDB /var/app/ondeck/db/migrate/20170725193230_create_coupons.rb:3:inupdated_at
load' /opt/rubies/ruby-2.3.4/bin/bundle:22:inchange' /opt/rubies/ruby-2.3.4/bin/bundle:22:in
图片<main>' ActiveRecord::StatementInvalid: Mysql2::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 'json,
代码varchar(255),
created_atvarchar(255),
优惠券datetime NOT NULL,' at line 1: CREATE TABLE
id {{ 1}}产物(
报价int AUTO_INCREMENT PRIMARY KEY,
大小varchar(255),
描述varchar(255),
信息varchar(255),
图像varchar(255),
代码json,
created_at {{1} } {的updated_at {1}}变化” /opt/rubies/ruby-2.3.4/bin/bundle:22:invarchar(255),
' Mysql2 ::错误:您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在'json,varchar(255),
varchar(255),datetime NOT NULL,
varchar(255),datetime NOT NULL) ENGINE=InnoDB /var/app/ondeck/db/migrate/20170725193230_create_coupons.rb:3:in
datetime NOT NULL'附近使用正确的语法。在第1行 /var/app/ondeck/db/migrate/20170725193230_create_coupons.rb:3:in`change'
有问题的迁移:
load'
/opt/rubies/ruby-2.3.4/bin/bundle:22:in
答案 0 :(得分:0)
原来rds上的mysql版本错了。 AWS默认为5.6。我升级到5.7.17,一切正常。