I have a bunch of new permissions which I need to migrate. I tried doing it through data migration but complains about ContentType not being available
.
Doing quick research I found out that ContentType
table is populated after all the migrations applied.
I even tried using update_all_contenttypes()
from from django.contrib.contenttypes.management import update_all_contenttypes
which causes migration to load data which is not consistent to the fixture.
What is the best way to migrate permission data in Django?
There are 2 ways to solve this:
1) The ugly way:
Run manage.py migrate auth
before your wanted migration
2) Recommended way:
from django.contrib.auth.management import create_permissions
def add_permissions(apps, schema_editor):
apps.models_module = True
create_permissions(apps, verbosity=0)
apps.models_module = None
# rest of code here....
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With