def init_test_database(self): """initialize a fresh postgresql database used for testing purpose""" from cubicweb.server import init_repository from cubicweb.server.serverctl import system_source_cnx, createdb # connect on the dbms system base to create our base try: self._drop(self.system_source['db-name']) createdb(self.helper, self.system_source, self.dbcnx, self.cursor) self.dbcnx.commit() cnx = system_source_cnx(self.system_source, special_privs='LANGUAGE C', interactive=False) templcursor = cnx.cursor() try: # XXX factorize with db-create code self.helper.init_fti_extensions(templcursor) # install plpythonu/plpgsql language if not installed by the cube langs = sys.platform == 'win32' and ('plpgsql', ) or ( 'plpythonu', 'plpgsql') for extlang in langs: self.helper.create_language(templcursor, extlang) cnx.commit() finally: templcursor.close() cnx.close() init_repository(self.config, interactive=False, init_config=self.init_config) except BaseException: if self.dbcnx is not None: self.dbcnx.rollback() sys.stderr.write('building %s failed\n' % self.dbname) raise
def run(self, args): check_options_consistency(self.config) print('\n' + underline_title('Initializing the system database')) from cubicweb.server import init_repository appid = args[0] config = ServerConfiguration.config_for(appid) try: system = config.system_source_config extra_args = system.get('db-extra-arguments') extra = extra_args and {'extra_args': extra_args} or {} get_connection(system['db-driver'], database=system['db-name'], host=system.get('db-host'), port=system.get('db-port'), user=system.get('db-user') or '', password=system.get('db-password') or '', schema=system.get('db-namespace'), **extra) except Exception as ex: raise ConfigurationError( 'You seem to have provided wrong connection information in ' 'the %s file. Resolve this first (error: %s).' % (config.sources_file(), str(ex).strip())) init_repository(config, drop=self.config.drop) if not self.config.automatic: while ASK.confirm('Enter another source ?', default_is_yes=False): CWCTL.run([ 'source-add', '--config-level', str(self.config.config_level), config.appid ])
def init_test_database(self): """initialize a fresh sqlite databse used for testing purpose""" # initialize the database from cubicweb.server import init_repository self._cleanup_database(self.absolute_dbfile()) init_repository(self.config, interactive=False, init_config=self.init_config)
def init_test_database(self): """initialize a fresh sqlserver databse used for testing purpose""" if self.config.init_repository: from cubicweb.server import init_repository init_repository(self.config, interactive=False, drop=True, init_config=self.init_config)