diff --git a/beat/web/databases/migrations/0004_beat_backend_python_1_5_x.py b/beat/web/databases/migrations/0004_beat_backend_python_1_5_x.py
index 0701c6b8644423ce03367535207600da14ca678c..35960a975d955dcf8a600f0075bf1465193de8d5 100644
--- a/beat/web/databases/migrations/0004_beat_backend_python_1_5_x.py
+++ b/beat/web/databases/migrations/0004_beat_backend_python_1_5_x.py
@@ -4,26 +4,6 @@ from __future__ import unicode_literals
 
 from django.db import migrations, models
 
-from beat.backend.python.hash import hashDataset
-
-
-def compute_hashes(apps, schema_editor):
-    '''Refreshes each database so datasets/outputs are recreated'''
-
-    DatabaseSet = apps.get_model("databases", "DatabaseSet")
-
-    if DatabaseSet.objects.count():
-        print('')
-
-    for db_set in DatabaseSet.objects.order_by('id'):
-        print("Computing hashes for database set '%s/%d/%s/%s'..." % \
-                (db_set.protocol.database.name, db_set.protocol.database.version,
-                 db_set.protocol.name, db_set.name))
-
-        db_set.hash = hashDataset('%s/%d' % (db_set.protocol.database.name, db_set.protocol.database.version),
-                                  db_set.protocol.name, db_set.name)
-        db_set.save()
-
 
 class Migration(migrations.Migration):
 
@@ -42,11 +22,4 @@ class Migration(migrations.Migration):
             field=models.CharField(default='', max_length=64),
             preserve_default=False,
         ),
-        migrations.RunPython(compute_hashes),
-        migrations.AlterField(
-            model_name='databaseset',
-            name='hash',
-            field=models.CharField(max_length=64, unique=True),
-            preserve_default=False,
-        ),
     ]
diff --git a/beat/web/databases/migrations/0005_databaseset_data_migration.py b/beat/web/databases/migrations/0005_databaseset_data_migration.py
new file mode 100644
index 0000000000000000000000000000000000000000..44a24f1c840357d8442504e1f56b9a3d9fcbbdd4
--- /dev/null
+++ b/beat/web/databases/migrations/0005_databaseset_data_migration.py
@@ -0,0 +1,36 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.13 on 2018-01-25 09:06
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+from beat.backend.python.hash import hashDataset
+
+
+def compute_hashes(apps, schema_editor):
+    '''Refreshes each database so datasets/outputs are recreated'''
+
+    DatabaseSet = apps.get_model("databases", "DatabaseSet")
+
+    if DatabaseSet.objects.count():
+        print('')
+
+    for db_set in DatabaseSet.objects.order_by('id'):
+        print("Computing hashes for database set '%s/%d/%s/%s'..." % \
+                (db_set.protocol.database.name, db_set.protocol.database.version,
+                 db_set.protocol.name, db_set.name))
+
+        db_set.hash = hashDataset('%s/%d' % (db_set.protocol.database.name, db_set.protocol.database.version),
+                                  db_set.protocol.name, db_set.name)
+        db_set.save()
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('databases', '0004_beat_backend_python_1_5_x'),
+    ]
+
+    operations = [
+        migrations.RunPython(compute_hashes),
+    ]
diff --git a/beat/web/databases/migrations/0006_databaseset_hash_unique.py b/beat/web/databases/migrations/0006_databaseset_hash_unique.py
new file mode 100644
index 0000000000000000000000000000000000000000..8ce33badee0597b74533ae8b930218e7847362e5
--- /dev/null
+++ b/beat/web/databases/migrations/0006_databaseset_hash_unique.py
@@ -0,0 +1,21 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.13 on 2018-01-25 09:06
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('databases', '0005_databaseset_data_migration'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='databaseset',
+            name='hash',
+            field=models.CharField(max_length=64, unique=True),
+            preserve_default=False,
+        ),
+    ]