def __init__(self, password=None, dbname='wa', host='localhost', port='5432', user='******', run_uuid=None, list_runs=False): if psycopg2 is None: msg = 'Please install the psycopg2 in order to connect to postgres databases' raise HostError(msg) self.dbname = dbname self.host = host self.port = port self.user = user self.password = password self.run_uuid = run_uuid self.conn = None self.info = None self.state = None self.result = None self.target_info = None self._combined_config = None self.jobs = [] self.job_specs = [] 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() self.disconnect() return if not self.run_uuid: print('Please specify "Run uuid"') self._list_runs() self.disconnect() return if not self.oid: self.oid = self._get_oid() self.reload()
def verify_schema_versions(self): local_schema_version, db_schema_version = get_schema_versions(self.conn) if local_schema_version != db_schema_version: self.cursor.close() self.cursor = None self.conn.commit() self.conn.reset() msg = 'The current database schema is v{} however the local ' \ 'schema version is v{}. Please update your database ' \ 'with the create command' raise OutputProcessorError(msg.format(db_schema_version, local_schema_version))