AWS EB上的Rails应用程序:迁移失败

时间:2017-09-25 22:59:34

标签: mysql ruby-on-rails amazon-web-services amazon-rds amazon-elastic-beanstalk

无法为在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 TABLE couponsid 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:in updated_at load'     /opt/rubies/ruby-2.3.4/bin/bundle:22:in change' /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_at varchar(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:in varchar(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

1 个答案:

答案 0 :(得分:0)

原来rds上的mysql版本错了。 AWS默认为5.6。我升级到5.7.17,一切正常。