$ [sudo] pip install django-postgres-model-constraints
designed for Django projects with a large number of models:
- no need
makemigrations
andmigrate
- no migration conflicts
- integrity checks - drop and create constraints again
- define tables with raw SQL (optional)
from django.apps import apps
from django_postgres_model_constraints.utils import get_add_foreign_key_constraint_statements, get_add_unique_constraint_statements
for model in apps.get_models():
statements = get_add_unique_constraint_statements(
model) + get_add_foreign_key_constraint_statements(model)
from django.apps import apps
from django_postgres_model_constraints.utils import get_drop_foreign_key_constraint_statements, get_drop_unique_constraint_statements
for model in apps.get_models():
statements = get_drop_foreign_key_constraint_statements(
model) + get_drop_unique_constraint_statements(model)