[SEBA-500] Always generate core models before a migration as service models depend on them

Change-Id: I0f007f9f3d217703869847d6cf570093c7af6363
diff --git a/lib/xos-migrate/xosmigrate/main.py b/lib/xos-migrate/xosmigrate/main.py
index 312477d..3bea379 100644
--- a/lib/xos-migrate/xosmigrate/main.py
+++ b/lib/xos-migrate/xosmigrate/main.py
@@ -311,6 +311,9 @@
 
 
 def run():
+    # cleaning up from possible incorrect states
+    if "INSTALLED_APPS" in os.environ:
+        del os.environ["INSTALLED_APPS"]
 
     args = parser.parse_args()
 
@@ -336,9 +339,9 @@
     # generate the code for each service and create a list of parameters to pass to django
     app_list = []
     for service in args.service_names:
+        # NOTE we need core models to be there as all the services depend on them
+        generate_core_models(core_dir)
         if service == "core":
-
-            generate_core_models(core_dir)
             django_cli_args.append("core")
         else:
             service_dir = os.path.join(service_base_dir, service)
@@ -348,7 +351,8 @@
 
             django_cli_args.append(service_name)
 
-    os.environ["INSTALLED_APPS"] = ",".join(app_list)
+    if len(app_list) > 0:
+        os.environ["INSTALLED_APPS"] = ",".join(app_list)
 
     os.environ.setdefault("DJANGO_SETTINGS_MODULE", "xos.settings")