Пример #1
0
 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
Пример #2
0
 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
             ])
Пример #3
0
 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)
Пример #4
0
 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)