Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cookiecutter-django template django.db.utils.ProgrammingError #4485

Closed
ENate opened this issue Jul 26, 2023 · 4 comments
Closed

cookiecutter-django template django.db.utils.ProgrammingError #4485

ENate opened this issue Jul 26, 2023 · 4 comments

Comments

@ENate
Copy link

ENate commented Jul 26, 2023

What happened?

What should've happened instead?

Additional details

Run docker-compose for local development:

docker-compose -f local.yml build

Run docker-compose build command:

docker-compose -f local.yml up -d 

Then check the logs using

docker-compose -f local.yml logs 

we get the following output:

local_celerybeat             |     return executor(sql, params, many, context)
local_celerybeat             |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
local_celerybeat             | [2023-07-26 11:46:23,580: WARNING/SpawnProcess-1]   File "/usr/local/lib/python3.11/site-packages/django/db/backends/utils.py", line 84, in _execute
local_celerybeat             |     with self.db.wrap_database_errors:
local_celerybeat             | [2023-07-26 11:46:23,580: WARNING/SpawnProcess-1]   File "/usr/local/lib/python3.11/site-packages/django/db/utils.py", line 91, in __exit__
local_celerybeat             |     raise dj_exc_value.with_traceback(traceback) from exc_value
local_celerybeat             | [2023-07-26 11:46:23,580: WARNING/SpawnProcess-1]   File "/usr/local/lib/python3.11/site-packages/django/db/backends/utils.py", line 89, in _execute
local_celerybeat             |     return self.cursor.execute(sql, params)
local_celerybeat             |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
local_celerybeat             | [2023-07-26 11:46:23,580: WARNING/SpawnProcess-1]   File "/usr/local/lib/python3.11/site-packages/psycopg/cursor.py", line 723, in execute
local_celerybeat             |     raise ex.with_traceback(None)
local_celerybeat             | [2023-07-26 11:46:23,580: WARNING/SpawnProcess-1] django.db.utils.ProgrammingError: relation "django_celery_beat_periodictask" does not exist
local_celerybeat             | LINE 1: ...ango_celery_beat_periodictask"."description" FROM "django_ce...
local_celerybeat             |                                                              ^

The error disapears when I decided to add the dynamically generated docker IP address to the settings.local file. Is there anyway to fix this issue before running the docker-compose command?

  • Host system configuration:

    • Version of cookiecutter CLI (get it with cookiecutter --version): 2.23

    • OS name and version:
      Ubuntu 22.04
      On Linux, run

      lsb_release -a 2> /dev/null || cat /etc/redhat-release 2> /dev/null || cat /etc/*-release 2> /dev/null || cat /etc/issue 2> /dev/null

      On MacOs, run

      sw_vers

      On Windows, via CMD, run

      systeminfo | findstr /B /C:"OS Name" /C:"OS Version"
      
      # Insert here the OS name and version
      
    • Python version, run python3 -V:

    • Docker version (if using Docker), run docker --version:

    • docker compose version (if using Docker), run docker compose --version:

    • ...

  • Options selected and/or replay file:
    On Linux and macOS: cat ${HOME}/.cookiecutter_replay/cookiecutter-django.json
    (Please, take care to remove sensitive information)

Logs:
$ cookiecutter https://github.com/cookiecutter/cookiecutter-django
project_name [Project Name]: ...
@ENate ENate added the bug label Jul 26, 2023
@browniebroke
Copy link
Member

The error you mention has nothing to do with networking or the static IP, it happens because the DB table isn't created yet. More details in this one

@browniebroke browniebroke added answered Automatically closed as answered after a custom delay solved Wait a bit and close the issue if no response assuming it was solved. and removed answered Automatically closed as answered after a custom delay labels Jul 26, 2023
@ENate
Copy link
Author

ENate commented Jul 27, 2023

Thanks @browniebroke. Let me check and see how to use that. And will get back soon. Thanks

@github-actions github-actions bot removed the solved Wait a bit and close the issue if no response assuming it was solved. label Jul 27, 2023
@browniebroke browniebroke added the waiting Waiting for an answer and auto-close after 10 days label Jul 28, 2023
@ENate
Copy link
Author

ENate commented Jul 29, 2023

I created an celery-entrypoint.sh with the following:

django_celery_migrations_complete() {
  count=$(python manage.py showmigrations django_celery_beat | grep '\[ \]' | wc -l)
  if [[ $count -eq 0 ]]; then
      return 0
  fi
    return 1
}

until django_celery_migrations_complete; do
  >&2 echo 'Waiting for Django Celery migrations to complete...'
  sleep 5
done
>&2 echo 'Django Celery migrations have been applied'

And modified the local.yml as follows:

# Inside docker-compose file:

  celerybeat:
    <<: *django
    image: celerybeat
    depends_on:
      - redis
      - postgres
    ports: []
    entrypoint: /celery-entrypoint
    command: /start-celerybeat

  celeryworker:
    <<: *django
    image: celeryworker
    depends_on:
      - redis
      - postgres
    ports: []
    entrypoint: /celery-entrypoint
    command: /start-celeryworker

But got the following:

celeryworker     | Waiting for PostgreSQL to become available...
celeryworker     | Waiting for PostgreSQL to become available...
celeryworker     | Waiting for PostgreSQL to become available...
celeryworker     | Waiting for PostgreSQL to become available...
celeryworker     | Waiting for PostgreSQL to become available...
celeryworker     | Waiting for PostgreSQL to become available...
celeryworker     | Waiting for PostgreSQL to become available...
celeryworker     | Waiting for PostgreSQL to become available...
celeryworker     | Waiting for PostgreSQL to become available...
celeryworker     | Waiting for PostgreSQL to become available...
celeryworker     | Waiting for PostgreSQL to become available...

And ....

django           | Waiting for PostgreSQL to become available...
django           | Waiting for PostgreSQL to become available...
django           | Waiting for PostgreSQL to become available...
django           | Waiting for PostgreSQL to become available...
django           | Waiting for PostgreSQL to become available...
django           | Waiting for PostgreSQL to become available...
django           | Waiting for PostgreSQL to become available...
django           | Waiting for PostgreSQL to become available...
..

...
postgres         | Success. You can now start the database server using:
postgres         | 
postgres         |     pg_ctl -D /var/lib/postgresql/data -l logfile start

The logs occasionally shows connection issues with TCP/IP. Not sure if this is from my side.
Thanks

@github-actions github-actions bot removed the waiting Waiting for an answer and auto-close after 10 days label Jul 29, 2023
@browniebroke
Copy link
Member

Will close as duplicate of #2727

@browniebroke browniebroke closed this as not planned Won't fix, can't repro, duplicate, stale Nov 29, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants