我应该在 Django DATABASE ENGINE 中使用哪个 Postgres 值?

Posted

技术标签:

【中文标题】我应该在 Django DATABASE ENGINE 中使用哪个 Postgres 值?【英文标题】:Which Postgres value should I use in Django's DATABASE_ENGINE? 【发布时间】:2011-01-07 03:20:25 【问题描述】:

这是我第一次在 Django 中使用 PostgreSQL 8.4.2(我过去一直使用 mysql 或 sqlite3)。我应该为settings.pypostgresql_psycopg2postgresql 中的DATABASE_ENGINE 使用哪个值?它们之间有何不同?

【问题讨论】:

【参考方案1】:

Django 1.9 更新

django.db.backends.postgresql_psycopg2 后端在 Django 1.9 中已重命名django.db.backends.postgresql。 (psycopg2 名称仍可用于向后兼容。)

基本上,对于 Django ≥1.9,使用 django.db.backends.postgresql

请参阅 Django 文档中有关 ENGINE setting 的注释。

历史(Django ≤ 1.8)

postgresql_psycopg2postgresql 都使用 psycopg,分别是版本 2 和 1。它们都是使用 PostgreSQL 的 libpq API 作为 C 扩展实现的。

目前推荐postgresql_psycopg2——原作者已弃用版本1,只制作new releases of version 2。

最初发布 Django 时,psycopg2 还处于测试阶段,不推荐使用,不过早在changed 之前就已经使用了。

【讨论】:

但是你能解释一下只使用 postgresql 有什么缺点吗?以及 postgresql_psycopg2 的一些好处。

以上是关于我应该在 Django DATABASE ENGINE 中使用哪个 Postgres 值?的主要内容,如果未能解决你的问题,请参考以下文章

Heroku/Django:没有名为 dj_database_url 的模块

为本地开发设置 django 和 dj-database-url

Django settings.DATABASE 错误

Django 测试:创建测试数据库时出错:数据库“database_name”已存在

如何为 django 可重用应用程序启动测试?

Django 数据库路由器