Heroku django 使用环境设置管理 shell (db, vars)

Posted

技术标签:

【中文标题】Heroku django 使用环境设置管理 shell (db, vars)【英文标题】:Heroku django manage shell with environment setup (db, vars) 【发布时间】:2018-11-22 07:46:10 【问题描述】:

我正在尝试访问 django shell,以便为我们的员工帐户设置一些超级用户权限。通过ps:exec 的 ssh 隧道来实现这一点

我们刚搬到 heroku,并正在使用他们的自动配置(阅读:自动黑匣子)模块 import django_heroku; django_heroku.settings(locals()) 来设置数据库设置。

当我打开 shell 时,那些配置设置没有运行,我收到一条错误消息 django.db.utils.OperationalError: no such table: user

基本上,我无法让 shell 实例使用 Heroku 不错的 postgres 配置器。有任何想法吗?手动查询帐户并设置一些参数的解决方法?我尝试从 Heroku 导入相同的神奇模块作为 shell 的一部分并实例化它,但它仅在 settings.py 文件中运行时才有效。

我试图不实际登录到 postgres 实例,这样我就不必打开任何 IP 范围等。

__________编辑_________

在类似的注释中,shell 似乎也无法加载 Heroku 的 env vars……那里也出现了一些问题。有没有办法在 Heroku 的环境下完全运行 shell?

【问题讨论】:

你为什么不使用heroku run manage.py shell,它将为你设置好一切? 【参考方案1】:

您可以使用查看控制台按钮通过 Heroku 仪表板访问 Django shell。 At the corner there

这样你就可以直接访问你的 shell ( dj shell) 或 heroku 的 linux shell。

【讨论】:

【参考方案2】:

你可以直接通过heroku cli运行python manage.py shell

heroku run python manage.py shell --app=your-app-name

【讨论】:

以上是关于Heroku django 使用环境设置管理 shell (db, vars)的主要内容,如果未能解决你的问题,请参考以下文章

sh Cookiecutter Django Heroku部署

如何让 South 在 Heroku 中为 Django 应用程序工作

Heroku 上的 Django - 损坏的管理静态文件

在 Heroku 上找不到 Django 静态文件(带白噪声)

在 Heroku 上使用 Django Rest Framework 后端部署 Angular 4 前端

Heroku Django Postgresql 数据库管理员,超级用户在哪里?