Which Postgres value should I use in Django's DATABASE_ENGINE?

Viewed 4236

It's my first time using PostgreSQL 8.4.2 with Django(I have always used MySQL or sqlite3 in the past). Which value should I use for DATABASE_ENGINE in settings.py, postgresql_psycopg2 or postgresql? How do they differ from each other?

1 Answers

Update for Django 1.9

The django.db.backends.postgresql_psycopg2 backend has been renamed to django.db.backends.postgresql in Django 1.9. (The psycopg2 name can still be used for backwards compatibility.)

Essentially, for Django ≥1.9, use django.db.backends.postgresql.

See note in Django's documentation for the ENGINE setting.

History (Django ≤ 1.8)

postgresql_psycopg2 and postgresql both use psycopg, versions 2 and 1 respectively. They are both implemented as C extensions using the libpq API to PostgreSQL.

postgresql_psycopg2 is currently recommended -- the original author has deprecated version 1 and is only making new releases of version 2.

When Django was originally released, psycopg2 was still in beta and was not recommended, but this has long since changed.

Related