-
Notifications
You must be signed in to change notification settings - Fork 20
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
auth_permission rows get "duplicated" on ./deploy.sh #291
Comments
As an aside to passing troubleshooters, I now recommend running this query (PostgreSQL) to remove the "orphaned" entries:
This will delete all entries from For our case, I included this command in the upgrade instructions and removed the fixtures. This issue should be closed when PR #283 is merged. |
This is a fairly extensive commit, since most of the requirements had to be upgraded as well. Dependencies have been locked down to specific versions for consistency and troubleshooting. Notable changes: - Moved wsgi.py to a more standard location, updated apache config. Now referenced in roundware.settings.WSGI_APPLICATION - For roundware.api2, implemented the new Application Configuration structure. See http://stackoverflow.com/q/32795227/1943591 - django-guardian now creates its own AnonymousUser in the database. Removed AnonymousUser references from fixtures to avoid conflicts. http://django-guardian.readthedocs.io/en/stable/configuration.html - django-guardian assign is being depricated for assign_perm See django-guardian/django-guardian@1419048 - ManyToManyField no longer accepts null=True - django.contrib.auth.models.User should not be accessed directly. Use django.conf.settings.AUTH_USER_MODEL instead - Django changed the way it loads models, which broke streaming. Moving django.setup() in roundwared.rwstreamd fixed the issue. - django_chartit is no longer maintained. Moved to django_chartit2 This may require us to install jQuery and Highcharts manually - django.forms.models.save_instance has been removed. We are now calling save() instead, but it might need more testing. django/django@8656cf django/django@b11564 - Fixed errors in Travis install script (thanks @hburgund) - Fixed jsocol/django-adminplus/issues/42 - Fixed django-admin-bootstrapped dependency See IMAmuseum/django-admin-bootstrapped - Fixed queryset filtering in ProjectProtectedThrough classes in admin.py Added explicit permission-based queryset filtering to ProjectAdmin - Fixed duplicate rows in auth_permission, removed default_auth fixtures. This closes roundware#229, fixes roundware#291, and supersedes roundware#282.
This is a fairly extensive commit, since most of the requirements had to be upgraded as well. Dependencies have been locked down to specific versions for consistency and troubleshooting. Notable changes: - Moved wsgi.py to a more standard location, updated apache config. Now referenced in roundware.settings.WSGI_APPLICATION - For roundware.api2, implemented the new Application Configuration structure. See http://stackoverflow.com/q/32795227/1943591 - django-guardian now creates its own AnonymousUser in the database. Removed AnonymousUser references from fixtures to avoid conflicts. http://django-guardian.readthedocs.io/en/stable/configuration.html - django-guardian assign is being depricated for assign_perm See django-guardian/django-guardian@1419048 - ManyToManyField no longer accepts null=True - django.contrib.auth.models.User should not be accessed directly. Use django.conf.settings.AUTH_USER_MODEL instead - Django changed the way it loads models, which broke streaming. Moving django.setup() in roundwared.rwstreamd fixed the issue. - django_chartit is no longer maintained. Moved to django_chartit2 This may require us to install jQuery and Highcharts manually - django.forms.models.save_instance has been removed. We are now calling save() instead, but it might need more testing. django/django@8656cf django/django@b11564 - Fixed errors in Travis install script (thanks @hburgund) - Fixed jsocol/django-adminplus/issues/42 - Fixed django-admin-bootstrapped dependency See IMAmuseum/django-admin-bootstrapped - Fixed queryset filtering in ProjectProtectedThrough classes in admin.py Added explicit permission-based queryset filtering to ProjectAdmin - Fixed duplicate rows in auth_permission, removed default_auth fixtures. This closes roundware#229, fixes roundware#291, and supersedes roundware#282.
This is a fairly extensive commit, since most of the requirements had to be upgraded as well. Dependencies have been locked down to specific versions for consistency and troubleshooting. Notable changes: - Moved wsgi.py to a more standard location, updated apache config. Now referenced in roundware.settings.WSGI_APPLICATION - For roundware.api2, implemented the new Application Configuration structure. See http://stackoverflow.com/q/32795227/1943591 - django-guardian now creates its own AnonymousUser in the database. Removed AnonymousUser references from fixtures to avoid conflicts. http://django-guardian.readthedocs.io/en/stable/configuration.html - django-guardian assign is being depricated for assign_perm See django-guardian/django-guardian@1419048 - ManyToManyField no longer accepts null=True - django.contrib.auth.models.User should not be accessed directly. Use django.conf.settings.AUTH_USER_MODEL instead - Django changed the way it loads models, which broke streaming. Moving django.setup() in roundwared.rwstreamd fixed the issue. - django_chartit is no longer maintained. Moved to django_chartit2 This may require us to install jQuery and Highcharts manually - django.forms.models.save_instance has been removed. We are now calling save() instead, but it might need more testing. django/django@8656cf django/django@b11564 - Fixed errors in Travis install script (thanks @hburgund) - Fixed jsocol/django-adminplus/issues/42 - Fixed django-admin-bootstrapped dependency See IMAmuseum/django-admin-bootstrapped - Fixed queryset filtering in ProjectProtectedThrough classes in admin.py Added explicit permission-based queryset filtering to ProjectAdmin - Fixed duplicate rows in auth_permission, removed default_auth fixtures. This closes roundware#229, fixes roundware#291, and supersedes roundware#282.
This is a fairly extensive commit, since most of the requirements had to be upgraded as well. Dependencies have been locked down to specific versions for consistency and troubleshooting. Notable changes: - Moved wsgi.py to a more standard location, updated apache config. Now referenced in roundware.settings.WSGI_APPLICATION - For roundware.api2, implemented the new Application Configuration structure. See http://stackoverflow.com/q/32795227/1943591 - django-guardian now creates its own AnonymousUser in the database. Removed AnonymousUser references from fixtures to avoid conflicts. http://django-guardian.readthedocs.io/en/stable/configuration.html - django-guardian assign is being depricated for assign_perm See django-guardian/django-guardian@1419048 - ManyToManyField no longer accepts null=True - django.contrib.auth.models.User should not be accessed directly. Use django.conf.settings.AUTH_USER_MODEL instead - Django changed the way it loads models, which broke streaming. Moving django.setup() in roundwared.rwstreamd fixed the issue. - django_chartit is no longer maintained. Moved to django_chartit2 This may require us to install jQuery and Highcharts manually - django.forms.models.save_instance has been removed. We are now calling save() instead, but it might need more testing. django/django@8656cf django/django@b11564 - Fixed errors in Travis install script (thanks @hburgund) - Fixed jsocol/django-adminplus/issues/42 - Fixed django-admin-bootstrapped dependency See IMAmuseum/django-admin-bootstrapped - Fixed queryset filtering in ProjectProtectedThrough classes in admin.py Added explicit permission-based queryset filtering to ProjectAdmin - Fixed duplicate rows in auth_permission, removed default_auth fixtures. This closes roundware#229, fixes roundware#291, and supersedes roundware#282.
This is a fairly extensive commit, since most of the requirements had to be upgraded as well. Dependencies have been locked down to specific versions for consistency and troubleshooting. Notable changes: - Moved wsgi.py to a more standard location, updated apache config. Now referenced in roundware.settings.WSGI_APPLICATION - For roundware.api2, implemented the new Application Configuration structure. See http://stackoverflow.com/q/32795227/1943591 - django-guardian now creates its own AnonymousUser in the database. Removed AnonymousUser references from fixtures to avoid conflicts. http://django-guardian.readthedocs.io/en/stable/configuration.html - django-guardian assign is being depricated for assign_perm See django-guardian/django-guardian@1419048 - ManyToManyField no longer accepts null=True - django.contrib.auth.models.User should not be accessed directly. Use django.conf.settings.AUTH_USER_MODEL instead - Django changed the way it loads models, which broke streaming. Moving django.setup() in roundwared.rwstreamd fixed the issue. - django_chartit is no longer maintained. Moved to django_chartit2 This may require us to install jQuery and Highcharts manually - django.forms.models.save_instance has been removed. We are now calling save() instead, but it might need more testing. django/django@8656cf django/django@b11564 - Fixed errors in Travis install script (thanks @hburgund) - Fixed jsocol/django-adminplus/issues/42 - Fixed django-admin-bootstrapped dependency See IMAmuseum/django-admin-bootstrapped - Fixed queryset filtering in ProjectProtectedThrough classes in admin.py Added explicit permission-based queryset filtering to ProjectAdmin - Fixed duplicate rows in auth_permission, removed default_auth fixtures. - Removed fix-m2m-deserial.patch This closes roundware#229, fixes roundware#291, and supersedes roundware#282.
As of at least fadb34d, there is a major problem with the
default_auth.json
fixture. Almost allauth.permission
objects contain outdatedcontent_type
references. Runningpython manage.py migrate
after a fresh install causes "duplicate" references to content types in theauth_permission
table. This also happens if you run./deploy.sh
at any time.Specifically, permissions for content types that changed ids get duplicated. For instance,
access_project
indefault_auth
points tocontent_type: 13
; therefore, the following row gets created inauth_permission
:However, after a fresh install, in the
django_content_type
table,project
has an id of 16. Therefore, a second row gets created inauth_permission
:This occurs for all permissions for that content type:
Permissions for content types whose id matches that listed in
default_auth.json
do not get duplicated:This problem has been present for a long time; however, Django managed to work around it by referencing only the permissions for the new content type id. Now that we are using custom
django-guardian
permissions in the APIv2 branch, this issue is rearing its ugly head.For anyone who stumbles on this page while troubleshooting your own projects, if you are using
auth.permission
fixtures withdjango-guardian
, and if you get errors similar to the one below, checkauth_permission
for orphanedcontent_type
references:I'm still trying to figure out what to do about this. My tentative recommendation is to do away with the
auth.permission
fixtures indefault_auth.json
and just let Django fill out the table as it sees fit. Furthermore, we should consider truncating theauth_permission
table as part of the upgrade process to Django 1.9 (#283).The text was updated successfully, but these errors were encountered: