aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc Bonnici <marc.bonnici@arm.com>2018-12-03 11:42:11 +0000
committersetrofim <setrofim@gmail.com>2018-12-07 09:55:17 +0000
commit0fb8d261fa8e4f076d59cfdd6ce1c1ebf2d689cc (patch)
tree209a42585cb5d02e7cd0321b0f110457206fb2b5
parent0426a966dab4ed66f557f9b6ca41726df69ae086 (diff)
fw/output: Add check for schema versions
-rw-r--r--wa/framework/output.py9
1 files changed, 9 insertions, 0 deletions
diff --git a/wa/framework/output.py b/wa/framework/output.py
index a613ef98..fd49fae1 100644
--- a/wa/framework/output.py
+++ b/wa/framework/output.py
@@ -38,6 +38,7 @@ from wa.framework.target.info import TargetInfo
from wa.framework.version import get_wa_version_with_commit
from wa.utils.doc import format_simple_table
from wa.utils.misc import touch, ensure_directory_exists, isiterable
+from wa.utils.postgres import get_schema_versions
from wa.utils.serializer import write_pod, read_pod, Podable, json
from wa.utils.types import enum, numeric
@@ -1064,6 +1065,14 @@ class RunDatabaseOutput(DatabaseOutput, RunOutputCommon):
self.connect()
super(RunDatabaseOutput, self).__init__(conn=self.conn, reload=False)
+ local_schema_version, db_schema_version = get_schema_versions(self.conn)
+ if local_schema_version != db_schema_version:
+ self.disconnect()
+ msg = 'The current database schema is v{} however the local ' \
+ 'schema version is v{}. Please update your database ' \
+ 'with the create command'
+ raise HostError(msg.format(db_schema_version, local_schema_version))
+
if list_runs:
print('Available runs are:')
self._list_runs()