Hi David,

Thanks for the feedback!

I'm checking out dj_database_url and have a few follow up questions I was
hoping you (or someone) could help me with.

1. Since this app is dockerized, I have my existing env vars in my
docker-compose-prod.yml file. Is that where I should list DATABASE_URL?
Like:






*db:    image: postgres:11    volumes:      -
postgres_data:/var/lib/postgresql/data/environment:-
DATABASE_URL=postgresql://<username>:<password>@<host>:<port>/<databasename>
- *2. Does the below formatting look correct to you from my settings.py? I
am running into issues with the env var DATABASE_URL and getting this
error:  Environment variable "{}" not set'





*DATABASES = {    'default': dj_database_url.config(env("DATABASE_URL"),
default="postgres://postgres@db/postgres", conn_max_age=1800),    'ENGINE':
'django.db.backends.postgresql',}*
3. I am also getting this error when running locally. Do you have any
advice for troubleshooting?

web_1  | [2020-11-03 16:35:59 +0000] [7] [ERROR] Error handling request
/NDCs/

web_1  | Traceback (most recent call last):

web_1  |   File
"/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py", line
134, in handle

web_1  |     self.handle_request(listener, req, client, addr)

web_1  |   File
"/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py", line
175, in handle_request

web_1  |     respiter = self.wsgi(environ, resp.start_response)

web_1  |   File
"/usr/local/lib/python3.8/site-packages/django/core/handlers/wsgi.py", line
131, in __call__

web_1  |     signals.request_started.send(sender=self.__class__,
environ=environ)

web_1  |   File
"/usr/local/lib/python3.8/site-packages/django/dispatch/dispatcher.py",
line 177, in send

web_1  |     return [

web_1  |   File
"/usr/local/lib/python3.8/site-packages/django/dispatch/dispatcher.py",
line 178, in <listcomp>

web_1  |     (receiver, receiver(signal=self, sender=sender, **named))

web_1  |   File
"/usr/local/lib/python3.8/site-packages/django/db/__init__.py", line 46, in
reset_queries

web_1  |     for conn in connections.all():

web_1  |   File
"/usr/local/lib/python3.8/site-packages/django/db/utils.py", line 229, in
all

web_1  |     return [self[alias] for alias in self]

web_1  |   File
"/usr/local/lib/python3.8/site-packages/django/db/utils.py", line 229, in
<listcomp>

web_1  |     return [self[alias] for alias in self]

web_1  |   File
"/usr/local/lib/python3.8/site-packages/django/db/utils.py", line 211, in
__getitem__

web_1  |     self.ensure_defaults(alias)

web_1  |   File
"/usr/local/lib/python3.8/site-packages/django/db/utils.py", line 176, in
ensure_defaults

web_1  |     conn.setdefault('ATOMIC_REQUESTS', False)

web_1  | AttributeError: 'str' object has no attribute 'setdefault'

Many thanks in advance for any insights.

Best,
Marc

On Sat, Oct 31, 2020 at 11:45 PM David Nugent <[email protected]> wrote:

> It's been a while since I used heroku, but iirc it just uses a formatted
> pg url.
>
> Install the module dj-database-url and use this in settings instead of the
> default DATABASES layout, something like:
>
>
> DATABASES = {
>     'default':
> dj_database_url.config(os.environ['DATABASE_URL'], conn_max_age=1800)
> }
>
>
> Then set DATABASE_URL in the heroku (and your development) environment.
> This setting will be of the form:
>
> DATABASE_URL=postgresql://<username>:<password>@<host>:<port>/<databasename>
>
>
> Again, its been a while but I also seem to recall that the DATABASE_URL is
> provided to your app automagically(?) a part of the provisioning so does
> not need to be explicitly set there.  Using the dj_database_url module in
> your settings above is the key.
>
>
>
>

-- 
M: +1-646-541-2108
W: marcjohnson.info <https://www.marcjohnson.info/>

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/CACH3BCQi2f7uybMPb%3DXXmLuczNwX3%2Bi-enyS-4Lmk_%2Ba7etYbw%40mail.gmail.com.

Reply via email to