【发布时间】:2020-10-19 06:56:57
【问题描述】:
我有一个部署到 Elastic Beanstalk Amazon Linux 2 AMI 的 Django 项目。我安装了 PyMySQL 以连接到数据库,并将这些行添加到 settings.py 中,如下所示;
import pymysql
pymysql.version_info = (1, 4, 6, "final", 0)
pymysql.install_as_MySQLdb()
我还有一个用于迁移数据库的 .config 文件;
container_commands:
01_migrate:
command: "django-admin.py migrate"
leader_only: true
option_settings:
aws:elasticbeanstalk:application:environment:
DJANGO_SETTINGS_MODULE: mysite.settings
通常,我在我的 Linux AMI 上使用 mysqlclient 和这个 .config 文件,但它在 Linux 2 AMI 上不起作用,所以我安装了 PyMySQL。现在,我正在尝试部署我的项目的更新版本,但出现如下错误;
Traceback (most recent call last):
File "/opt/aws/bin/cfn-init", line 171, in <module>
worklog.build(metadata, configSets)
File "/usr/lib/python2.7/site-packages/cfnbootstrap/construction.py", line 129, in build
Contractor(metadata).build(configSets, self)
File "/usr/lib/python2.7/site-packages/cfnbootstrap/construction.py", line 530, in build
self.run_config(config, worklog)
File "/usr/lib/python2.7/site-packages/cfnbootstrap/construction.py", line 542, in run_config
CloudFormationCarpenter(config, self._auth_config).build(worklog)
File "/usr/lib/python2.7/site-packages/cfnbootstrap/construction.py", line 260, in build
changes['commands'] = CommandTool().apply(self._config.commands)
File "/usr/lib/python2.7/site-packages/cfnbootstrap/command_tool.py", line 117, in apply
raise ToolError(u"Command %s failed" % name)
ToolError: Command 01_migrate failed
我该如何解决这个问题?
【问题讨论】:
-
当您从实例手动运行
django-admin.py migrate时,它是否按预期工作? -
当我在我的 powershell 上运行命令时,它按预期工作。我可以将更改迁移到我的数据库。
-
很好,但是当您 ssh 进入 EB 实例并运行命令时,它是否可以在 EB 实例本身上工作?
-
我尝试运行 migrate 命令,但出现
No such file or directory之类的错误 -
django-admin.py migrate来自哪里?它是您的应用程序的一部分,还是某些依赖项?
标签: django amazon-elastic-beanstalk pymysql amazon-linux amazon-linux-2