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 Answer
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.