diff --git a/gracedb/migrations/0001_initial.py b/gracedb/migrations/0001_initial.py
index 5c36f7d956e18f8653e90e1bcf9aad7a187a4b96..6dc69e8609e7ddc6643556eeebe0730cfe4655bd 100644
--- a/gracedb/migrations/0001_initial.py
+++ b/gracedb/migrations/0001_initial.py
@@ -8,7 +8,7 @@ from django.conf import settings
 class Migration(migrations.Migration):
 
     dependencies = [
-        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
+        ('auth', '0008_auto_20171020_1045'),
     ]
 
     operations = [
diff --git a/migrations/guardian/0001_initial.py b/migrations/guardian/0001_initial.py
index 9eeba1b22aa77ab55e24605fadde4594b1455371..ba6e1ff473f53e09ae3b0a89788b70a4c2263aaf 100644
--- a/migrations/guardian/0001_initial.py
+++ b/migrations/guardian/0001_initial.py
@@ -1,44 +1,58 @@
 # -*- coding: utf-8 -*-
+# Generated by Django 1.11.5 on 2017-10-25 17:25
 from __future__ import unicode_literals
 
-from django.db import models, migrations
 from django.conf import settings
+from django.db import migrations, models
+import django.db.models.deletion
+from django.apps import apps as django_apps
 
+def guardian_post_migrate_signal(apps, schema_editor):
+
+    # We need to emit a post-migrate signal so that django.contrib.auth
+    # will create the permission objects corresponding to the new
+    # GroupObjectPermission and UserObjectPermission models that were
+    # created by django-guardian. This is definitely not the nicest
+    # way of doing things, but it's what we are stuck with for now.
+    print("\n\nManually emitting post-migrate signal for guardian:")
+    guardian_config = django_apps.get_app_config('guardian')
+    models.signals.post_migrate.send(
+        sender=guardian_config,
+        app_config=guardian_config,
+        verbosity=2,
+        interactive=False,
+        using=schema_editor.connection.alias,
+    )
 
 class Migration(migrations.Migration):
 
+    initial = True
+
     dependencies = [
-        ('auth', '0001_initial'),
-        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
-        ('contenttypes', '0001_initial'),
+        ('auth', '0008_auto_20171020_1045'),
+        ('contenttypes', '0002_remove_content_type_name'),
     ]
 
     operations = [
         migrations.CreateModel(
             name='GroupObjectPermission',
             fields=[
-                ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                 ('object_pk', models.CharField(max_length=255, verbose_name='object ID')),
-                ('content_type', models.ForeignKey(to='contenttypes.ContentType')),
-                ('group', models.ForeignKey(to='auth.Group')),
-                ('permission', models.ForeignKey(to='auth.Permission')),
+                ('content_type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='contenttypes.ContentType')),
+                ('group', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='auth.Group')),
+                ('permission', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='auth.Permission')),
             ],
-            options={
-            },
-            bases=(models.Model,),
         ),
         migrations.CreateModel(
             name='UserObjectPermission',
             fields=[
-                ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                 ('object_pk', models.CharField(max_length=255, verbose_name='object ID')),
-                ('content_type', models.ForeignKey(to='contenttypes.ContentType')),
-                ('permission', models.ForeignKey(to='auth.Permission')),
-                ('user', models.ForeignKey(to=settings.AUTH_USER_MODEL)),
+                ('content_type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='contenttypes.ContentType')),
+                ('permission', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='auth.Permission')),
+                ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
             ],
-            options={
-            },
-            bases=(models.Model,),
         ),
         migrations.AlterUniqueTogether(
             name='userobjectpermission',
@@ -48,4 +62,5 @@ class Migration(migrations.Migration):
             name='groupobjectpermission',
             unique_together=set([('group', 'permission', 'object_pk')]),
         ),
+        migrations.RunPython(guardian_post_migrate_signal, reverse_code=None),
     ]