diff --git a/migrations/20240327_add_created_and_origin.py b/migrations/20240327_add_created_and_origin.py
index f9b6fa03c78d282f620383f81e413b34805b9bc1..a20c8de30ba56357497ecd83f09ea92b3fe01e5a 100644
--- a/migrations/20240327_add_created_and_origin.py
+++ b/migrations/20240327_add_created_and_origin.py
@@ -1,9 +1,18 @@
+import re
 import csv
 import dataset
 from datetime import datetime
 import rabbit_config as rcfg
 
 
+def fromisoformat(date_string: str):
+    regex = re.compile(
+        r"(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})\.(\d{1,6})"
+    )
+    mo = re.search(regex, date_string)
+    return datetime(*[int(m) for m in mo.groups()])
+
+
 def upgrade():
     db_path = rcfg.db_path
     db_name = "user_reg.db"
@@ -25,13 +34,13 @@ def upgrade():
         next(reader)
         for row in reader:
             if row[0] in users:
-                users[row[0]]["created"] = datetime.fromisoformat(row[1][:-3])
+                users[row[0]]["created"] = fromisoformat(row[1][:-3])
                 users[row[0]]["origin"] = row[2]
 
     # Add copy created column from last_update if they are not in csv file
     for username in users:
         if "created" not in users[username]:
-            users[username]["created"] = datetime.fromisoformat(
+            users[username]["created"] = fromisoformat(
                 users[username]["last_update"]
             )
             users[username]["origin"] = "last_update"