summaryrefslogtreecommitdiffstats
path: root/src/lib/Bcfg2/Reporting/Storage/DjangoORM.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/Bcfg2/Reporting/Storage/DjangoORM.py')
-rw-r--r--src/lib/Bcfg2/Reporting/Storage/DjangoORM.py15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/lib/Bcfg2/Reporting/Storage/DjangoORM.py b/src/lib/Bcfg2/Reporting/Storage/DjangoORM.py
index c223c3c73..406216861 100644
--- a/src/lib/Bcfg2/Reporting/Storage/DjangoORM.py
+++ b/src/lib/Bcfg2/Reporting/Storage/DjangoORM.py
@@ -4,6 +4,7 @@ The base for the original DjangoORM (DBStats)
from lxml import etree
from datetime import datetime
+import traceback
from time import strptime
import Bcfg2.Options
import Bcfg2.DBSettings
@@ -14,6 +15,7 @@ from django.core import management
from django.core.exceptions import ObjectDoesNotExist, MultipleObjectsReturned
from django.db.models import FieldDoesNotExist
from django.core.cache import cache
+from django import db
#Used by GetCurrentEntry
import difflib
@@ -368,7 +370,12 @@ class DjangoORM(StorageBase):
self._import_interaction(interaction)
except:
self.logger.error("Failed to import interaction: %s" %
- sys.exc_info()[1])
+ traceback.format_exc().splitlines()[-1])
+ finally:
+ self.logger.debug("%s: Closing database connection" %
+ self.__class__.__name__)
+ db.close_connection()
+
def validate(self):
"""Validate backend storage. Should be called once when loaded"""
@@ -380,9 +387,9 @@ class DjangoORM(StorageBase):
vrb = 1
else:
vrb = 0
- management.call_command("syncdb", verbosity=vrb, interactive=False)
- management.call_command("migrate", verbosity=vrb,
- interactive=False)
+ Bcfg2.DBSettings.sync_databases(verbosity=vrb, interactive=False)
+ Bcfg2.DBSettings.migrate_databases(verbosity=vrb,
+ interactive=False)
except:
msg = "Failed to update database schema: %s" % sys.exc_info()[1]
self.logger.error(msg)