diff options
| author | Karel Kočí <cynerd@email.cz> | 2015-07-22 11:28:57 +0200 | 
|---|---|---|
| committer | Karel Kočí <cynerd@email.cz> | 2015-07-22 11:28:57 +0200 | 
| commit | e291e4e7c831f34238bbcda1c39659826f04191c (patch) | |
| tree | ff3fb0dc730ffd9c5fef87a88d072a427c6ad033 /scripts | |
| parent | 17cb74bcb4583921abc32ddbe2991f27ae816707 (diff) | |
| download | linux-conf-perf-e291e4e7c831f34238bbcda1c39659826f04191c.tar.gz linux-conf-perf-e291e4e7c831f34238bbcda1c39659826f04191c.tar.bz2 linux-conf-perf-e291e4e7c831f34238bbcda1c39659826f04191c.zip  | |
Add database initialisation check
On object creation, when connection to server is established, is now implemented check if database has all tables as it should have.
Diffstat (limited to 'scripts')
| -rw-r--r-- | scripts/database.py | 8 | ||||
| -rw-r--r-- | scripts/exceptions.py | 4 | ||||
| -rwxr-xr-x | scripts/initialize.py | 2 | 
3 files changed, 14 insertions, 0 deletions
diff --git a/scripts/database.py b/scripts/database.py index 18ed724..0c4abe9 100644 --- a/scripts/database.py +++ b/scripts/database.py @@ -3,6 +3,7 @@ import postgresql  import collections  import utils +import exceptions  from conf import conf  def __git_describe__(): @@ -28,6 +29,13 @@ class database:  				host = conf.db_host,  				port = conf.db_port  				) +		# check if tables are present +		tables = ('toolsgit', 'configurations', 'measure') +		for tab in tables: +			val = self.db.prepare("""SELECT COUNT(*) FROM pg_class +							   WHERE relname = $1""")(tab)[0][0] +			if val < 1: +				raise exceptions.DatabaseUninitialized()  	def check_toolsgit(self):  		"Return id of toolsgit row. If missing, it is inserted" diff --git a/scripts/exceptions.py b/scripts/exceptions.py index ec170ba..730664a 100644 --- a/scripts/exceptions.py +++ b/scripts/exceptions.py @@ -39,3 +39,7 @@ class ProcessFailed(Exception):  	def __str__(self):  		return "Process failed: " + str(self.process) + \  			" with return code: " + str(self.returncode) + +class DatabaseUninitialized(Exception): +	def __str__(self): +		return "Database seems to be uninitialized." diff --git a/scripts/initialize.py b/scripts/initialize.py index 5171320..d4470b8 100755 --- a/scripts/initialize.py +++ b/scripts/initialize.py @@ -21,6 +21,8 @@ def all():  		solution.generate()  	except exceptions.NoSolution:  		pass +	# check if database is initialized +	database.database()  def base():  	print('Initialize base...')  | 
