我有一个使用弹性beantalk CLI部署的django项目。我添加了一个postgres数据库(AWS RDS),连接正在运行。
我的数据库仍然是空的。如何在eb shell中运行迁移命令或“ python manage.py createsuperuser”?
当我打开eb ssh <env>
并尝试时ls
,什么也没显示。向后退回一个目录,cd ..
并再次ls
向我显示ec2-user,healthd和webapp。我没有进入这些文件夹的权限。是否可以在eb ssh内运行python命令?
我也尝试了容器命令.ebextensions / db-migrate.config:
container_commands:
01_makemigrations:
command: "python manage.py makemigrations"
leader_only: true
02_migrate:
command: "python manage.py migrate --first main initial && python manage.py migrate"
leader_only: true
option_settings:
aws:elasticbeanstalk:application:environment:
DJANGO_SETTINGS_MODULE: <app>.settings
使用再次提交并部署后eb deploy
,出现以下错误:
eb deploy创建应用程序版本归档文件“ app-xxxx”。上载:[############################################# ###] 100%完成...
2021-02-22 12:57:12信息环境更新开始。
2021-02-22 12:58:05信息将新版本部署到实例。
2021-02-22 12:58:21信息实例部署成功生成了“ Procfile”。
2021-02-22 12:58:23错误实例部署失败。有关详细信息,请参见“ eb-engine.log”。
2021-02-22 12:58:24错误[Instance:i-xxxx]命令在实例上失败。返回码:1输出:引擎执行遇到错误。
2021-02-22 12:58:24信息在所有实例上的命令执行已完成。摘要:[成功:0,失败:1]。
2021-02-22 12:58:24错误在实例ID'i-xxxx'上命令执行失败。中止操作。
2021-02-22 12:58:24错误无法部署应用程序。
错误:ServiceError-无法部署应用程序。
为什么命令失败?任何建议表示赞赏。顺便说一句,我在使用本地sql db进行部署时没有任何问题。
eb-engine.log将我引到cfn-init.log。这是输出:
2021-02-22 16:49:43,624 [ERROR]命令01_makemigrations(python manage.py makemigrations)失败
2021-02-22 16:49:43,624 [错误]构建postbuild_0_django_test时遇到错误:命令01_makemigrations失败
追溯(最近一次通话):文件“ /usr/lib/python2.7/site-packages/cfnbootstrap/construction.py”,第542行,位于run_config CloudFormationCarpenter(config,self._auth_config).build(worklog)中
在构建更改中的文件“ /usr/lib/python2.7/site-packages/cfnbootstrap/construction.py”,第260行['commands'] = CommandTool()。apply(self._config.commands)
文件“ /usr/lib/python2.7/site-packages/cfnbootstrap/command_tool.py”,行117中,应用apply ToolError(u“命令%s失败”%名称)ToolError:命令01_makemigrations失败
在“路径”中,我看到python 2.7(?),但实际上python 3.7在64位Amazon Linux 2上运行。我还尝试使用“ python3”执行命令。
问题在于,此时尚未加载django。
解决方案:
container_commands:
01_migrate:
command: |
source $PYTHONPATH/activate
pipenv run python ./manage.py migrate
日志reffering你eb-engine.log
和cfn-init.log
,但我发现最后的一丝cfn-init-cmd.log
:
2021-02-23 11:08:34,019 P5022 [INFO] ImportError:无法导入Django。您确定已在PYTHONPATH环境变量中安装并使用该变量吗?您是否忘记了激活虚拟环境?
我也尝试过为“ createsuperuser”使用它。完全没有错误,也没有创建新用户。没有活动的命令行可输入用户名/密码。如果找到了createsuperuser的解决方案,我会尝试更新我的答案。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句