Bug #7691
(multitenant) error in create_default_ou when running migrations
Début:
29 juin 2015
Echéance:
% réalisé:
100%
Temps estimé:
Patch proposed:
Non
Planning:
Description
Applying saml.0014_auto_20150617_1216... OK Traceback (most recent call last): File "/usr/lib/authentic2/manage.py", line 20, in <module> execute_from_command_line(sys.argv[:1] + argv) File "/usr/lib/python2.7/dist-packages/django/core/management/__init__.py", line 385, in execute_from_command_lin e utility.execute() File "/usr/lib/python2.7/dist-packages/django/core/management/__init__.py", line 377, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/usr/lib/python2.7/dist-packages/hobo/multitenant/management/commands/migrate_schemas.py", line 25, in run_ from_argv super(MigrateSchemasCommand, self).run_from_argv(argv) File "/usr/lib/python2.7/dist-packages/django/core/management/base.py", line 288, in run_from_argv self.execute(*args, **options.__dict__) File "/usr/lib/python2.7/dist-packages/django/core/management/base.py", line 338, in execute output = self.handle(*args, **options) File "/usr/lib/python2.7/dist-packages/hobo/multitenant/management/commands/migrate_schemas.py", line 42, in handle self.run_migrations(tenant.schema_name, settings.TENANT_APPS) File "/usr/lib/python2.7/dist-packages/hobo/multitenant/management/commands/migrate_schemas.py", line 58, in run_migrations command.execute(*self.args, **defaults) File "/usr/lib/python2.7/dist-packages/django/core/management/base.py", line 338, in execute output = self.handle(*args, **options) File "/usr/lib/python2.7/dist-packages/django/core/management/commands/migrate.py", line 165, in handle emit_post_migrate_signal(created_models, self.verbosity, self.interactive, connection.alias) File "/usr/lib/python2.7/dist-packages/django/core/management/sql.py", line 268, in emit_post_migrate_signal using=db) File "/usr/lib/python2.7/dist-packages/django/dispatch/dispatcher.py", line 198, in send response = receiver(signal=self, sender=sender, **named) File "/usr/lib/python2.7/dist-packages/authentic2/a2_rbac/signal_handlers.py", line 29, in create_default_ou 'name': _('Default organizational unit'), File "/usr/lib/python2.7/dist-packages/django/db/models/manager.py", line 92, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) File "/usr/lib/python2.7/dist-packages/django/db/models/query.py", line 424, in get_or_create return self._create_object_from_params(lookup, params) File "/usr/lib/python2.7/dist-packages/django/db/models/query.py", line 465, in _create_object_from_params six.reraise(*exc_info) File "/usr/lib/python2.7/dist-packages/django/db/models/query.py", line 457, in _create_object_from_params obj.save(force_insert=True, using=self.db) File "/usr/lib/python2.7/dist-packages/django/db/transaction.py", line 339, in __exit__ connection.commit() File "/usr/lib/python2.7/dist-packages/django/db/backends/__init__.py", line 176, in commit self._commit() File "/usr/lib/python2.7/dist-packages/django/db/backends/__init__.py", line 145, in _commit return self.connection.commit() File "/usr/lib/python2.7/dist-packages/django/db/utils.py", line 94, in __exit__ six.reraise(dj_exc_type, dj_exc_value, traceback) File "/usr/lib/python2.7/dist-packages/django/db/backends/__init__.py", line 145, in _commit return self.connection.commit() django.db.utils.IntegrityError: ERREUR: une instruction insert ou update sur la table « a2_rbac_permission » viole la contrainte de clé étrangère « a2_rb_operation_id_11500320079f32bc_fk_django_rbac_operation_id » DETAIL: La clé (operation_id)=(4) n'est pas présente dans la table « django_rbac_operation ».
(this is on authentic.dev.entrouvert.org)
Révisions associées
Historique
Mis à jour par Benjamin Dauvergne il y a presque 9 ans
- Statut changé de Nouveau à Résolu (à déployer)
- % réalisé changé de 0 à 100
Appliqué par commit authentic2|65571f44cc0c52d14377353d9f04b74c9003841b.
Mis à jour par Benjamin Dauvergne il y a environ 8 ans
- Statut changé de Résolu (à déployer) à Solution déployée
Mis à jour par Benjamin Dauvergne il y a plus de 6 ans
- Statut changé de Solution déployée à Fermé
django_rbac: remove GlobalCache from get_operation() (fixes #7691)
It should separate cache from different tenants based on the current
request, but in commands there is no current request, so it does not work.
Another solution would be to deactivate the cache when there is no
request in the global context.