How to migrate Django from local sqlite3 to postgresql Docker container?

I'm trying to learn Django with some demo projects and want to migrate from sqlite3 to a local postgresql container for dev work. When I try to run uv run python manage.py migrate, I get the following exception:

django.db.utils.OperationalError: connection failed: connection to server at "127.0.0.1", port 5432 failed: FATAL:  password authentication failed for user "myuser"

While the container is running, the database is accessible via psql, and my pg_hba.conf looks like it should be allowing authentication:

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
# IPv6 local connections:
host    all             all             ::1/128                 trust
# Allow replication connections from localhost, by a user with the
# replication privilege.
local   replication     all                                     trust
host    replication     all             127.0.0.1/32            trust
host    replication     all             ::1/128                 trust

host all all all scram-sha-256

I'm creating and running my postgresql container with:

docker run --name=db_container -d -e POSTGRES_DB=mydatabase -e POSTGRES_USER=myuser -e POSTGRES_PASSWORD=mypassword -p 5432:5432 postgres:16.2

My .env file contains:

POSTGRES_DB=mydatabase
POSTGRES_USER=myuser
POSTGRES_PASSWORD=mypassword
HOST=localhost
PORT=5432

My settings.py file contains:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': config('POSTGRES_DB'),
        'USER': config('POSTGRES_USER'),
        'PASSWORD': config('POSTGRES_PASSWORD'),
        'HOST': config('HOST'),
        'PORT': config('PORT'),
    }
}

For additional reference, I'm using Python 3.12 and the following dependencies:

"asgiref>=3.8.1",
"django>=5.1.6",
"django-taggit>=6.1.0",
"markdown>=3.7",
"psycopg>=3.2.5",
"python-decouple>=3.8",
"sqlparse>=0.5.3"

How do I use a postgres container as a local dev database in my Django app?

Вернуться на верх