AWS CLI eb 在新 RDS mysql 实例上部署未 运行 迁移

AWS CLI eb deploy not running migrations on new RDS mysql instance

我正在使用命令行界面 EB CLI 3.5 (Python 2.7.2) 在 AWS 上创建一个新应用程序。我 运行 eb init 并设置我的区域和应用程序名称,然后 eb create

在 运行ning eb create 之后,我的环境构建并给出错误 Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'。这是完全合理的,没有数据库,因为 eb create 只创建 EC2 实例、自动缩放组、Cloudwatch 警报、安全组等

我通过 Web 控制台 -> 软件配置页面创建一个 RDS 实例,并将连接环境变量添加到我的 database.yml 文件中:

production:
  adapter: mysql2
  encoding: utf8
  database: <%= ENV['RDS_DB_NAME'] %>
  username: <%= ENV['RDS_USERNAME'] %>
  password: <%= ENV['RDS_PASSWORD'] %>
  host: <%= ENV['RDS_HOSTNAME'] %>
  port: <%= ENV['RDS_PORT'] %>

和 运行 eb deploy 再次(部署时没有错误)但是当我去查看页面时出现此错误:

Mysql2::Error: Table 'DATABASE-NAME.users' doesn't exist 在生产日志中,我连接到生产数据库时可以验证这一点,并且没有表。

当我 运行 eb deploy 命令时,我的迁移似乎不是 运行ning。我是否在通过 Web 控制台创建数据库和通过命令行部署之间缺少 link?

多亏了这个 post 它现在对我有用了。最新版本的 eb cli 似乎存在问题,它将 leader_only 设置为 false,因此部署时 rake 任务不是 运行。

(希望是临时的)解决方案是设置一个 container_command 到 运行 迁移 rake 任务。