diff --git a/atdb/taskdatabase/migrations/0001_initial.py b/atdb/taskdatabase/migrations/0001_initial.py
new file mode 100644
index 0000000000000000000000000000000000000000..0d78afb91a34f303b853a01127b55cd4ad0b3cec
--- /dev/null
+++ b/atdb/taskdatabase/migrations/0001_initial.py
@@ -0,0 +1,73 @@
+# Generated by Django 3.1.4 on 2021-01-21 15:05
+
+import datetime
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    initial = True
+
+    dependencies = [
+    ]
+
+    operations = [
+        migrations.CreateModel(
+            name='Workflow',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('workflow_uri', models.CharField(blank=True, max_length=30, null=True)),
+                ('repository', models.CharField(blank=True, max_length=100, null=True)),
+                ('commit_id', models.CharField(blank=True, max_length=30, null=True)),
+                ('path', models.CharField(blank=True, max_length=100, null=True)),
+            ],
+        ),
+        migrations.CreateModel(
+            name='Task',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('taskID', models.CharField(blank=True, db_index=True, max_length=30, null=True)),
+                ('task_type', models.CharField(default='task', max_length=20)),
+                ('new_predecessor_id', models.CharField(blank=True, max_length=12, null=True)),
+                ('project', models.CharField(blank=True, default='unknown', max_length=100, null=True)),
+                ('sas_id', models.CharField(blank=True, max_length=30, null=True)),
+                ('priority', models.IntegerField(default=0)),
+                ('purge_policy', models.CharField(blank=True, default='no', max_length=5, null=True)),
+                ('new_workflow_id', models.CharField(blank=True, max_length=12, null=True)),
+                ('new_workflow_uri', models.CharField(blank=True, max_length=100, null=True)),
+                ('stage_request_id', models.IntegerField(default=0)),
+                ('inputs', models.JSONField(blank=True, null=True)),
+                ('outputs', models.JSONField(blank=True, null=True)),
+                ('skip', models.BooleanField(default=False)),
+                ('creationTime', models.DateTimeField(blank=True, default=datetime.datetime.utcnow)),
+                ('new_status', models.CharField(default='defining', max_length=50, null=True)),
+                ('status', models.CharField(blank=True, db_index=True, default='unknown', max_length=50, null=True)),
+                ('predecessor', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='task_successors', to='taskdatabase.task')),
+                ('workflow', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='tasks', to='taskdatabase.workflow')),
+            ],
+        ),
+        migrations.CreateModel(
+            name='Status',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('name', models.CharField(default='unknown', max_length=50)),
+                ('timestamp', models.DateTimeField(blank=True, default=datetime.datetime.utcnow)),
+                ('task', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='status_history', to='taskdatabase.task')),
+            ],
+        ),
+        migrations.CreateModel(
+            name='LogEntry',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('cpu_cycles', models.IntegerField(blank=True, null=True)),
+                ('wall_clock_time', models.IntegerField(blank=True, null=True)),
+                ('url_to_log_file', models.CharField(blank=True, max_length=100, null=True)),
+                ('step_name', models.CharField(blank=True, max_length=30, null=True)),
+                ('start_time', models.DateTimeField(blank=True, null=True)),
+                ('end_time', models.DateTimeField(blank=True, null=True)),
+                ('status', models.CharField(blank=True, default='defined', max_length=50, null=True)),
+                ('task', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='log_entries', to='taskdatabase.task')),
+            ],
+        ),
+    ]
diff --git a/atdb/taskdatabase/migrations/0002_auto_20210122_1053.py b/atdb/taskdatabase/migrations/0002_auto_20210122_1053.py
new file mode 100644
index 0000000000000000000000000000000000000000..60274dbb99c4332ec4bfb91f4e554258372c09c5
--- /dev/null
+++ b/atdb/taskdatabase/migrations/0002_auto_20210122_1053.py
@@ -0,0 +1,38 @@
+# Generated by Django 3.1.4 on 2021-01-22 09:53
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('taskdatabase', '0001_initial'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='task',
+            name='filter',
+            field=models.CharField(blank=True, max_length=30, null=True),
+        ),
+        migrations.AlterField(
+            model_name='task',
+            name='new_predecessor_id',
+            field=models.CharField(blank=True, max_length=15, null=True),
+        ),
+        migrations.AlterField(
+            model_name='task',
+            name='new_workflow_id',
+            field=models.CharField(blank=True, max_length=15, null=True),
+        ),
+        migrations.AlterField(
+            model_name='task',
+            name='sas_id',
+            field=models.CharField(blank=True, max_length=15, null=True),
+        ),
+        migrations.AlterField(
+            model_name='workflow',
+            name='commit_id',
+            field=models.CharField(blank=True, max_length=15, null=True),
+        ),
+    ]
diff --git a/atdb/taskdatabase/migrations/0003_auto_20210122_1333.py b/atdb/taskdatabase/migrations/0003_auto_20210122_1333.py
new file mode 100644
index 0000000000000000000000000000000000000000..aca870d2b6d2777ad46292ec67c116c2c90287ce
--- /dev/null
+++ b/atdb/taskdatabase/migrations/0003_auto_20210122_1333.py
@@ -0,0 +1,28 @@
+# Generated by Django 3.1.4 on 2021-01-22 12:33
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('taskdatabase', '0002_auto_20210122_1053'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='task',
+            name='new_predecessor_id',
+            field=models.IntegerField(blank=True, null=True),
+        ),
+        migrations.AlterField(
+            model_name='task',
+            name='priority',
+            field=models.IntegerField(),
+        ),
+        migrations.AlterField(
+            model_name='workflow',
+            name='workflow_uri',
+            field=models.CharField(blank=True, max_length=30, null=True, unique=True),
+        ),
+    ]
diff --git a/atdb/taskdatabase/migrations/0004_remove_task_new_predecessor_id.py b/atdb/taskdatabase/migrations/0004_remove_task_new_predecessor_id.py
new file mode 100644
index 0000000000000000000000000000000000000000..6817d8b3477e27a9fd458824cb255d045a9e444c
--- /dev/null
+++ b/atdb/taskdatabase/migrations/0004_remove_task_new_predecessor_id.py
@@ -0,0 +1,17 @@
+# Generated by Django 3.1.4 on 2021-01-22 12:56
+
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('taskdatabase', '0003_auto_20210122_1333'),
+    ]
+
+    operations = [
+        migrations.RemoveField(
+            model_name='task',
+            name='new_predecessor_id',
+        ),
+    ]
diff --git a/atdb/taskdatabase/migrations/0005_auto_20210122_1719.py b/atdb/taskdatabase/migrations/0005_auto_20210122_1719.py
new file mode 100644
index 0000000000000000000000000000000000000000..d775f2d90f5004830be41e82ed7d6e1e94754065
--- /dev/null
+++ b/atdb/taskdatabase/migrations/0005_auto_20210122_1719.py
@@ -0,0 +1,29 @@
+# Generated by Django 3.1.4 on 2021-01-22 16:19
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('taskdatabase', '0004_remove_task_new_predecessor_id'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='task',
+            name='predecessor',
+            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='successors', to='taskdatabase.task'),
+        ),
+        migrations.AlterField(
+            model_name='task',
+            name='priority',
+            field=models.IntegerField(null=True),
+        ),
+        migrations.AlterField(
+            model_name='task',
+            name='stage_request_id',
+            field=models.IntegerField(default=0, null=True),
+        ),
+    ]
diff --git a/atdb/taskdatabase/migrations/0006_logentry_description.py b/atdb/taskdatabase/migrations/0006_logentry_description.py
new file mode 100644
index 0000000000000000000000000000000000000000..f6437dbcc05762070eb622fd5bed39d453e6ba7b
--- /dev/null
+++ b/atdb/taskdatabase/migrations/0006_logentry_description.py
@@ -0,0 +1,18 @@
+# Generated by Django 3.1.4 on 2021-01-26 07:43
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('taskdatabase', '0005_auto_20210122_1719'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='logentry',
+            name='description',
+            field=models.CharField(blank=True, max_length=100, null=True),
+        ),
+    ]