
Django PostgreSQL Setup Tutorial
A step-by-step tutorial on setting up PostgreSQL with Django for production. Learn about database configurations, psycopg2, and optimization techniques.
Why PostgreSQL for Django?
While Django comes with SQLite out of the box, it is not suitable for production. PostgreSQL is the most robust, fully-featured relational database that perfectly integrates with Django's ORM, offering features like JSONB fields, full-text search, and array fields.
Step 1: Install Dependencies
First, you need the PostgreSQL adapter for Python. Install psycopg2-binary:
pip install psycopg2-binary
Step 2: Configure settings.py
Replace the default SQLite configuration in your settings.py file with your PostgreSQL credentials:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'my_database',
'USER': 'my_db_user',
'PASSWORD': 'my_secure_password',
'HOST': 'localhost',
'PORT': '5432',
}
}
Step 3: Apply Migrations
Once the database is created and settings are configured, apply Django's initial migrations:
python manage.py migrate
Production Best Practices
Never hardcode your database credentials in settings.py. Always use environment variables (e.g., using python-dotenv or django-environ). Also, ensure you configure CONN_MAX_AGE to reuse database connections, which significantly improves performance in a production environment.
Nimesh Regmi
Freelance Flutter, Django, and Next.js developer based in Kathmandu, Nepal. I build production-ready mobile apps, REST APIs, and full-stack platforms for startups and businesses worldwide.
Looking for a Developer?
I build high-performance mobile apps and web platforms. Available for freelance projects.
View My Services →