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 任务。
我正在使用命令行界面 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 任务。