diff --git a/ligoauth/migrations/0013_update_bayeswave_robot.py b/ligoauth/migrations/0013_update_bayeswave_robot.py
index 56d935307a49a272124d3aa664b7f37110508e27..fd6875229fc784fbd5faf49fbe8c7e859e7cf5a2 100644
--- a/ligoauth/migrations/0013_update_bayeswave_robot.py
+++ b/ligoauth/migrations/0013_update_bayeswave_robot.py
@@ -29,12 +29,11 @@ def create_robots(apps, schema_editor):
         cert.save()
 
         # Delete old certs.
-        for oldcert in entry['oldcert']:
-            try:
-                cert = X509Cert.objects.get(subject=oldcert)
-                cert.delete()
-            except:
-                pass
+        try:
+            cert = X509Cert.objects.get(subject=entry['oldcert'])
+            cert.delete()
+        except:
+            pass
 
 def delete_robots(apps, schema_editor):
     LocalUser = apps.get_model('ligoauth','LocalUser')
@@ -47,13 +46,15 @@ def delete_robots(apps, schema_editor):
         user.save()
 
         # Create oldcerts, add to user
-        for oldcert in entry['oldcert']:
-            cert, created = X509Cert.objects.get_or_create(subject=oldcert)
-            cert.users.add(user)
-            cert.save()
+        cert, created = X509Cert.objects.get_or_create(subject=entry['oldcert'])
+        cert.users.add(user)
+        cert.save()
 
         # Delete newcert.
-        X509Cert.objects.get(subject=entry['newcert']).delete()
+        try:
+           X509Cert.objects.get(subject=entry['newcert']).delete()
+        except:
+            pass
 
 class Migration(migrations.Migration):
 
diff --git a/ligoauth/migrations/0015_update_bayestar_robot.py b/ligoauth/migrations/0015_update_bayestar_robot.py
new file mode 100644
index 0000000000000000000000000000000000000000..5391b73b00fb1a14b3e5d87aafa66d1573254206
--- /dev/null
+++ b/ligoauth/migrations/0015_update_bayestar_robot.py
@@ -0,0 +1,69 @@
+# -*- coding: utf-8 -*-
+# Default imports
+from __future__ import unicode_literals
+from django.db import migrations, models
+from django.conf import settings
+
+ROBOTS = [{'username': 'bayestar-mic',
+           'newcert': '/DC=org/DC=ligo/O=LIGO/OU=Services/CN=Online_CBC_BAYESTAR_O3_Preview/node746.cluster.ldas.cit',
+           'oldcert': '/DC=org/DC=ligo/O=LIGO/OU=Services/CN=bayestar-mic/node529.cluster.ldas.cit',
+           'newemail': 'leo.singer@ligo.org',
+           'oldemail': 'lsinger@caltech.edu',
+          },
+]
+
+def create_robots(apps, schema_editor):
+    LocalUser = apps.get_model('ligoauth','LocalUser')
+    X509Cert = apps.get_model('ligoauth','X509Cert')
+
+    # Get/create new user, get/create new cert, associate user with cert.
+    for entry in ROBOTS:
+        # get user, update email
+        user = LocalUser.objects.get(username=entry['username'])
+        user.email = entry['newemail']
+        user.save()
+
+        # get or create certificate, add user
+        cert, c_created = X509Cert.objects.get_or_create(subject=entry['newcert'])
+        cert.users.add(user)
+        cert.save()
+
+        # Delete old certs.
+        try:
+            cert = X509Cert.objects.get(subject=entry['oldcert'])
+            cert.delete()
+        except:
+            pass
+
+def delete_robots(apps, schema_editor):
+    LocalUser = apps.get_model('ligoauth','LocalUser')
+    X509Cert = apps.get_model('ligoauth','X509Cert')
+
+    for entry in ROBOTS:
+        # revert email
+        user = LocalUser.objects.get(username=entry['username'])
+        user.email = entry['oldemail']
+        user.save()
+
+        # Create oldcerts, add to user
+        cert, created = X509Cert.objects.get_or_create(subject=entry['oldcert'])
+        cert.users.add(user)
+        cert.save()
+
+        # Delete newcert.
+        try:
+            X509Cert.objects.get(subject=entry['newcert']).delete()
+        except:
+            pass
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('ligoauth', '0014_update_lib_robot'),
+    ]
+
+    operations = [
+        migrations.RunPython(create_robots, delete_robots)
+    ]
+
+# End of file