[Django] #30111: AppRegistryNotReady-Error when having contrib.postgres in INSTALLED_APPS

23 views
Skip to first unread message

Django

unread,
Jan 17, 2019, 2:04:46 PM1/17/19
to django-...@googlegroups.com
#30111: AppRegistryNotReady-Error when having contrib.postgres in INSTALLED_APPS
--------------------------------------------+------------------------
Reporter: Jann Haber | Owner: (none)
Type: Bug | Status: new
Component: contrib.postgres | Version: 2.2
Severity: Normal | Keywords:
Triage Stage: Unreviewed | Has patch: 0
Needs documentation: 0 | Needs tests: 0
Patch needs improvement: 0 | Easy pickings: 0
UI/UX: 0 |
--------------------------------------------+------------------------
After an upgrade to Django 2.2a1, I found the following problem:
{{{
$ python manage.py help
/home/test/.virtualenvs/testenv/lib/python3.7/site-
packages/psycopg2/__init__.py:144: UserWarning: The psycopg2 wheel package
will be renamed from release 2.8; in order to keep installing from binary
please use "pip install psycopg2-binary" instead. For details see:
<http://initd.org/psycopg/docs/install.html#binary-install-from-pypi>.
""")
Traceback (most recent call last):
File "manage.py", line 21, in <module>
main()
File "manage.py", line 17, in main
execute_from_command_line(sys.argv)
File "/home/test/.virtualenvs/testenv/lib/python3.7/site-
packages/django/core/management/__init__.py", line 381, in
execute_from_command_line
utility.execute()
File "/home/test/.virtualenvs/testenv/lib/python3.7/site-
packages/django/core/management/__init__.py", line 357, in execute
django.setup()
File "/home/test/.virtualenvs/testenv/lib/python3.7/site-
packages/django/__init__.py", line 24, in setup
apps.populate(settings.INSTALLED_APPS)
File "/home/test/.virtualenvs/testenv/lib/python3.7/site-
packages/django/apps/registry.py", line 91, in populate
app_config = AppConfig.create(entry)
File "/home/test/.virtualenvs/testenv/lib/python3.7/site-
packages/django/apps/config.py", line 116, in create
mod = import_module(mod_path)
File "/usr/lib/python3.7/importlib/__init__.py", line 127, in
import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 967, in
_find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 728, in exec_module
File "<frozen importlib._bootstrap>", line 219, in
_call_with_frames_removed
File "/home/test/.virtualenvs/testenv/lib/python3.7/site-
packages/django/contrib/postgres/apps.py", line 8, in <module>
from django.db.migrations.writer import MigrationWriter
File "/home/test/.virtualenvs/testenv/lib/python3.7/site-
packages/django/db/migrations/writer.py", line 10, in <module>
from django.db.migrations.loader import MigrationLoader
File "/home/test/.virtualenvs/testenv/lib/python3.7/site-
packages/django/db/migrations/loader.py", line 8, in <module>
from django.db.migrations.recorder import MigrationRecorder
File "/home/test/.virtualenvs/testenv/lib/python3.7/site-
packages/django/db/migrations/recorder.py", line 9, in <module>
class MigrationRecorder:
File "/home/test/.virtualenvs/testenv/lib/python3.7/site-
packages/django/db/migrations/recorder.py", line 22, in MigrationRecorder
class Migration(models.Model):
File "/home/test/.virtualenvs/testenv/lib/python3.7/site-
packages/django/db/models/base.py", line 99, in __new__
app_config = apps.get_containing_app_config(module)
File "/home/test/.virtualenvs/testenv/lib/python3.7/site-
packages/django/apps/registry.py", line 252, in get_containing_app_config
self.check_apps_ready()
File "/home/test/.virtualenvs/testenv/lib/python3.7/site-
packages/django/apps/registry.py", line 135, in check_apps_ready
raise AppRegistryNotReady("Apps aren't loaded yet.")
django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet.
}}}

To reproduce (running python 3.7.2):
Make a new python3 venv (python3 -m venv) and activate. Install django and
psycopg2 using pip. Use django-admin.py startproject to get a fresh
installation of django. Add contrib.postgres to INSTALLED_APPS. Run the
command above, which should display the help messages. The same thing
happens also with any other manage.py command.

--
Ticket URL: <https://code.djangoproject.com/ticket/30111>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

Django

unread,
Jan 17, 2019, 2:06:02 PM1/17/19
to django-...@googlegroups.com
#30111: AppRegistryNotReady-Error when having contrib.postgres in INSTALLED_APPS
----------------------------------+--------------------------------------

Reporter: Jann Haber | Owner: (none)
Type: Bug | Status: new
Component: contrib.postgres | Version: 2.2
Severity: Normal | Resolution:

Keywords: | Triage Stage: Unreviewed
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
----------------------------------+--------------------------------------
Description changed by Jann Haber:

Old description:

New description:

2.2a1 and psycopg2 using pip. Use django-admin.py startproject to get a


fresh installation of django. Add contrib.postgres to INSTALLED_APPS. Run
the command above, which should display the help messages. The same thing
happens also with any other manage.py command.

Note: The same thing is working with no problem when running Django 2.1.5

--

--
Ticket URL: <https://code.djangoproject.com/ticket/30111#comment:1>

Django

unread,
Jan 17, 2019, 4:21:18 PM1/17/19
to django-...@googlegroups.com
#30111: AppRegistryNotReady-Error when having contrib.postgres in INSTALLED_APPS
----------------------------------+--------------------------------------

Reporter: Jann Haber | Owner: (none)
Type: Bug | Status: new
Component: contrib.postgres | Version: 2.2
Severity: Normal | Resolution:

Keywords: | Triage Stage: Unreviewed
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
----------------------------------+--------------------------------------

Comment (by Nasir Hussain):

Replying to [ticket:30111 Jann Haber]:
Hi Jann,

So I looked into the code and found the issue.

When contrib.postgres is in INSTALLED_APPS it triggers from
**django.db.migrations.writer import MigrationWriter** import in
[https://github.com/django/django/blob/7185ea6902532eb195d0575d1bf1492ca9d45dea/django/contrib/postgres/apps.py#L8
django/django/contrib/postgres/apps.py] which further triggered
**app_config = apps.get_containing_app_config(module)** import in
[https://github.com/django/django/blob/7185ea6902532eb195d0575d1bf1492ca9d45dea/django/db/models/base.py#L99
ModelBase] Meta class.
ModelBase checks for self.check_apps_ready() while apps have not been
completely loaded yet. So an exception is raised **raise
AppRegistryNotReady("Apps aren't loaded yet.")**
I've changed **django/django/contrib/postgres/apps.py** to import
MigrationWriter only when needed to avoid **check for apps ready** cycle
to fix the issue


[https://github.com/django/django/pull/10861 PR]

--
Ticket URL: <https://code.djangoproject.com/ticket/30111#comment:2>

Django

unread,
Jan 17, 2019, 4:22:57 PM1/17/19
to django-...@googlegroups.com
#30111: AppRegistryNotReady-Error when having contrib.postgres in INSTALLED_APPS
-------------------------------------+-------------------------------------
Reporter: Jann Haber | Owner: Nasir
| Hussain
Type: Bug | Status: assigned
Component: contrib.postgres | Version: 2.2
Severity: Normal | Resolution:

Keywords: | Triage Stage:
| Unreviewed
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Nasir Hussain):

* status: new => assigned
* owner: (none) => Nasir Hussain


--
Ticket URL: <https://code.djangoproject.com/ticket/30111#comment:3>

Django

unread,
Jan 17, 2019, 4:25:15 PM1/17/19
to django-...@googlegroups.com
#30111: AppRegistryNotReady-Error when having contrib.postgres in INSTALLED_APPS
-------------------------------------+-------------------------------------
Reporter: Jann Haber | Owner: Nasir
| Hussain
Type: Bug | Status: assigned
Component: contrib.postgres | Version: 2.2
Severity: Normal | Resolution:
Keywords: | Triage Stage:
| Unreviewed
Has patch: 1 | Needs documentation: 0

Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Nasir Hussain):

* has_patch: 0 => 1


--
Ticket URL: <https://code.djangoproject.com/ticket/30111#comment:4>

Django

unread,
Jan 17, 2019, 4:55:08 PM1/17/19
to django-...@googlegroups.com
#30111: AppRegistryNotReady-Error when having contrib.postgres in INSTALLED_APPS
-------------------------------------+-------------------------------------
Reporter: Jann Haber | Owner: Nasir
| Hussain
Type: Bug | Status: assigned
Component: contrib.postgres | Version: 2.2
Severity: Release blocker | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 1 | Needs documentation: 0

Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Nick Pope):

* severity: Normal => Release blocker
* stage: Unreviewed => Accepted


--
Ticket URL: <https://code.djangoproject.com/ticket/30111#comment:5>

Django

unread,
Jan 18, 2019, 12:36:55 AM1/18/19
to django-...@googlegroups.com
#30111: AppRegistryNotReady-Error when having contrib.postgres in INSTALLED_APPS
-------------------------------------+-------------------------------------
Reporter: Jann Haber | Owner: Nasir
| Hussain
Type: Bug | Status: assigned
Component: contrib.postgres | Version: 2.2

Severity: Release blocker | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 1 | Needs documentation: 0

Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Simon Charette):

* cc: jon.dufresne@… (added)


Comment:

This was caused by #29738 [as bisected by
Jon](https://code.djangoproject.com/ticket/29738#comment:14).

--
Ticket URL: <https://code.djangoproject.com/ticket/30111#comment:6>

Django

unread,
Jan 18, 2019, 12:40:59 AM1/18/19
to django-...@googlegroups.com
#30111: AppRegistryNotReady-Error when having contrib.postgres in INSTALLED_APPS
-------------------------------------+-------------------------------------
Reporter: Jann Haber | Owner: Nasir
| Hussain
Type: Bug | Status: assigned
Component: contrib.postgres | Version: 2.2

Severity: Release blocker | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 1 | Needs documentation: 0

Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Jon Dufresne):

* cc: jon.dufresne@… (added)

Django

unread,
Jan 21, 2019, 11:06:56 AM1/21/19
to django-...@googlegroups.com
#30111: AppRegistryNotReady-Error when having contrib.postgres in INSTALLED_APPS
-------------------------------------+-------------------------------------
Reporter: Jann Haber | Owner: Nasir
| Hussain
Type: Bug | Status: assigned
Component: contrib.postgres | Version: 2.2
Severity: Release blocker | Resolution:
Keywords: | Triage Stage: Ready for
| checkin
Has patch: 1 | Needs documentation: 0

Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Carlton Gibson):

* stage: Accepted => Ready for checkin


--
Ticket URL: <https://code.djangoproject.com/ticket/30111#comment:7>

Django

unread,
Jan 22, 2019, 5:50:20 PM1/22/19
to django-...@googlegroups.com
#30111: AppRegistryNotReady-Error when having contrib.postgres in INSTALLED_APPS
-------------------------------------+-------------------------------------
Reporter: Jann Haber | Owner: Nasir
| Hussain
Type: Bug | Status: closed
Component: contrib.postgres | Version: 2.2
Severity: Release blocker | Resolution: fixed

Keywords: | Triage Stage: Ready for
| checkin
Has patch: 1 | Needs documentation: 0

Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Tim Graham <timograham@…>):

* status: assigned => closed
* resolution: => fixed


Comment:

In [changeset:"2804b8d2153505ec49b191db2168302dfb92c3af" 2804b8d2]:
{{{
#!CommitTicketReference repository=""
revision="2804b8d2153505ec49b191db2168302dfb92c3af"
Fixed #30111 -- Fixed AppRegistryNotReady error with
django.contrib.postgres in INSTALLED_APPS.

Regression in e192223ed996ed30fe83787efdfa7f2be6b1a2ee.
}}}

--
Ticket URL: <https://code.djangoproject.com/ticket/30111#comment:8>

Django

unread,
Jan 22, 2019, 6:06:20 PM1/22/19
to django-...@googlegroups.com
#30111: AppRegistryNotReady-Error when having contrib.postgres in INSTALLED_APPS
-------------------------------------+-------------------------------------
Reporter: Jann Haber | Owner: Nasir
| Hussain
Type: Bug | Status: closed
Component: contrib.postgres | Version: 2.2

Severity: Release blocker | Resolution: fixed
Keywords: | Triage Stage: Ready for
| checkin
Has patch: 1 | Needs documentation: 0

Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------

Comment (by Tim Graham <timograham@…>):

In [changeset:"6ce7887f1387855df2cda180da08277febedd02e" 6ce7887f]:
{{{
#!CommitTicketReference repository=""
revision="6ce7887f1387855df2cda180da08277febedd02e"
[2.2.x] Fixed #30111 -- Fixed AppRegistryNotReady error with
django.contrib.postgres in INSTALLED_APPS.

Regression in e192223ed996ed30fe83787efdfa7f2be6b1a2ee.
Backport of 2804b8d2153505ec49b191db2168302dfb92c3af from master.
}}}

--
Ticket URL: <https://code.djangoproject.com/ticket/30111#comment:9>

Django

unread,
Jan 23, 2019, 1:18:04 PM1/23/19
to django-...@googlegroups.com
#30111: AppRegistryNotReady-Error when having contrib.postgres in INSTALLED_APPS
-------------------------------------+-------------------------------------
Reporter: Jann Haber | Owner: Nasir
| Hussain
Type: Bug | Status: closed
Component: contrib.postgres | Version: 2.2

Severity: Release blocker | Resolution: fixed
Keywords: | Triage Stage: Ready for
| checkin
Has patch: 1 | Needs documentation: 0

Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------

Comment (by Tim Graham <timograham@…>):

In [changeset:"2de7eb6f4d5a20cec98e4d2eefc276ee38d149ad" 2de7eb6f]:
{{{
#!CommitTicketReference repository=""
revision="2de7eb6f4d5a20cec98e4d2eefc276ee38d149ad"
Refs #30111 -- Fixed test cleanup in postgres_tests/test_integration.py.

Fixed "ERROR: Step ‘Publish JUnit test result report’ failed: No test
report
files were found. Configuration error?" on Jenkins because report files
were
put in tests/postgres_tests.
}}}

--
Ticket URL: <https://code.djangoproject.com/ticket/30111#comment:10>

Django

unread,
Jan 23, 2019, 1:18:19 PM1/23/19
to django-...@googlegroups.com
#30111: AppRegistryNotReady-Error when having contrib.postgres in INSTALLED_APPS
-------------------------------------+-------------------------------------
Reporter: Jann Haber | Owner: Nasir
| Hussain
Type: Bug | Status: closed
Component: contrib.postgres | Version: 2.2

Severity: Release blocker | Resolution: fixed
Keywords: | Triage Stage: Ready for
| checkin
Has patch: 1 | Needs documentation: 0

Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------

Comment (by Tim Graham <timograham@…>):

In [changeset:"710052fee9372306b5d8f46957b3660eee2cac68" 710052f]:
{{{
#!CommitTicketReference repository=""
revision="710052fee9372306b5d8f46957b3660eee2cac68"
[2.2.x] Refs #30111 -- Fixed test cleanup in
postgres_tests/test_integration.py.

Fixed "ERROR: Step ‘Publish JUnit test result report’ failed: No test
report
files were found. Configuration error?" on Jenkins because report files
were
put in tests/postgres_tests.

Backport of 2de7eb6f4d5a20cec98e4d2eefc276ee38d149ad from master.
}}}

--
Ticket URL: <https://code.djangoproject.com/ticket/30111#comment:11>

Reply all
Reply to author
Forward
0 new messages