【问题标题】:Django PostgreSQL setting with separated credential file?带有分离凭证文件的 Django PostgreSQL 设置?
【发布时间】:2017-11-05 06:30:53
【问题描述】:

我想将我的 django 数据库从 MySQL 迁移到 PostgreSQL。 以前我使用过数据库配置选项,就像 Django website 中的这个示例一样。

数据库设置的 MySQL 引擎有选项:'read_default_file',所以我可以在外部文件上分离我的数据库凭据。

现在我准备用 psycopg2 引擎切换到 PostgreSQL,但我找不到类似 read_default_file 的选项。

有什么解决办法吗?

或者我应该改用其他具有此选项的 PostgreSQL 数据库引擎吗?谢谢

【问题讨论】:

  • 应该不难理解,这里看看这个wiki post关于如何将mysql数据库转换为postgresql,试着google一下,你会很快找到一些例子
  • @petarP,我认为 OP 并没有询问该过程。使用 django 非常流畅。他在询问 django 配置。

标签: django postgresql psycopg2 django-settings


【解决方案1】:

read_default_file 纯粹是 mysql 的东西。它不能用于 postgresql。 postgresql 中最接近的等价物是.pgpass 文件,该文件需要在运行 psql 客户端的用户的主目录中创建。这定义了用户的密码。

当您在开发中使用 django 时,在您的主目录中创建一个文件就可以了。但是在生产中你不应该运行 django 开发服务器。生产 WSGI 服务器在可能没有主目录的受限用户帐户下运行。在这种情况下,您需要使用 PGPASSFILE 环境变量来告诉 django 在哪里查找密码。

【讨论】:

  • 我知道read_default_file 是 mysql 的东西,但我主要关注的是如何区分 Django 设置和 PostgreSQL 凭据。我认为 psycopg2 引擎有一个“选项”可以分离凭证。我会尝试寻找在 PaaS 上使用PGPASSFILE 环境的可能性。
  • 如果您的主要关注点是不将凭据放在设置文件中,那确实是由环境变量完成的。
  • 这样解决了吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-22
  • 1970-01-01
  • 1970-01-01
  • 2015-11-06
相关资源
最近更新 更多