postgres和postgresql_psycopg2在Django中作为数据库引擎有什么区别?

49

我已经使用Python一段时间了,但从未使用过Django。我正在接手一个之前离开公司的另一位员工制作的项目。我想知道在Django中,选用postgresql和postgresql_psycopg2作为数据库驱动程序有什么区别。

在一些关于如何设置Django项目的文章和文档中,我看到了只有postgresql,而在其他地方则看到了postgresql_psycopg2。我在文档(这里这里)中找不到任何提到psycopg2的内容,那么这只是编写选项的旧方法吗?

其中一个仅仅是另一个的别名,还是它们实际上是不同的引擎?我也找不到其他的SO关于这个问题的答案。

DATABASES = {
'default': {
    'ENGINE': 'django.db.backends.postgresql',# here I also saw postgres_psycopg2
    'NAME': 'premqcsite',
    'USER': 'django_user',
    'PASSWORD': 'Encepta_123',
    'HOST': 'localhost',
    'PORT': '5432',
}}
1个回答

69

内容相同。在 django <1.8 中使用的是 django.db.backends.postgresql_psycopg2,在 django 1.9 中被重命名为 django.db.backends.postgresql。 来自文档:

自 Django 1.9 起更改:

django.db.backends.postgresql 后端在旧版本中被命名为 django.db.backends.postgresql_psycopg2 。为了向后兼容性,在新版本中仍然可以使用旧名称。


3
现在安装 Django 还需要用 pip 安装 pycopg_2 吗?还是已经包含在 Django 中了? - Advena
7
@Tanckom 我也有同样的问题,后来发现它并没有包含在内。你必须在运行 migrate 命令之前安装它。 - Shahriar Rahman Zahin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接