From 58bca5af270094b6516dec3dae65a1984209de0b Mon Sep 17 00:00:00 2001
From: Benjamin Bertrand <benjamin.bertrand@esss.se>
Date: Wed, 6 Mar 2019 13:15:21 +0100
Subject: [PATCH] Fix database migration when the database is empty

---
 .../versions/ac04850e5f68_add_is_ioc_field.py | 23 ++++++++++---------
 1 file changed, 12 insertions(+), 11 deletions(-)

diff --git a/migrations/versions/ac04850e5f68_add_is_ioc_field.py b/migrations/versions/ac04850e5f68_add_is_ioc_field.py
index e9bc161..2c96468 100644
--- a/migrations/versions/ac04850e5f68_add_is_ioc_field.py
+++ b/migrations/versions/ac04850e5f68_add_is_ioc_field.py
@@ -32,17 +32,18 @@ def upgrade():
     conn = op.get_bind()
     res = conn.execute("SELECT id FROM tag WHERE name = 'IOC';")
     row = res.fetchone()
-    ioc_tag_id = row[0]
-    res.close()
-    res = conn.execute(
-        f"""SELECT interface.host_id FROM interface
-        INNER JOIN interfacetags ON interface.id = interfacetags.interface_id
-        WHERE interfacetags.tag_id = {ioc_tag_id};
-        """
-    )
-    results = res.fetchall()
-    for result in results:
-        op.execute(host.update().where(host.c.id == result[0]).values(is_ioc=True))
+    if row is not None:
+        ioc_tag_id = row[0]
+        res.close()
+        res = conn.execute(
+            f"""SELECT interface.host_id FROM interface
+            INNER JOIN interfacetags ON interface.id = interfacetags.interface_id
+            WHERE interfacetags.tag_id = {ioc_tag_id};
+            """
+        )
+        results = res.fetchall()
+        for result in results:
+            op.execute(host.update().where(host.c.id == result[0]).values(is_ioc=True))
     op.drop_table("interfacetags")
     op.drop_table("tag")
 
-- 
GitLab