Пример #1
0
 def _predo(root, database):
     """对原始数据库做特殊处理"""
     prefile = os.path.join(root, 'pre.sql')
     if os.path.exists(prefile):
         mysqlload(prefile,
                   database.get('host'),
                   database.get('port'),
                   database.get('user'),
                   database.get('passwd'),
                   database.get('schema'),
                   character_set=None,
                   extargs=None,
                   logfile=None,
                   callable=safe_fork,
                   timeout=30)
Пример #2
0
 def execute(self, timeline, root, database):
     LOG.debug('Try init databases')
     initfile = os.path.join(root, 'init.sql')
     logfile = os.path.join(root, 'initdb.err.%d.log' % timeline)
     mysqlload(initfile,
               database.get('host'),
               database.get('port'),
               database.get('user'),
               database.get('passwd'),
               database.get('schema'),
               character_set=None,
               extargs=None,
               logfile=logfile,
               callable=safe_fork,
               timeout=15)
     LOG.debug('Init databases success, try call pre.sql')
     os.remove(logfile)
     self._predo(root, database)
Пример #3
0
 def execute_sql_from_file(self, sql_file, logfile=None, timeout=None):
     database = self.database
     func = None
     if systemutils.LINUX:
         func = functools.partial(utils.safe_fork,
                                  user=self.middleware.entity_user,
                                  group=self.middleware.entity_group)
     self.executed = 1
     mysqlload(loadfile=sql_file,
               host=database.host,
               port=database.port,
               user=database.user,
               passwd=database.passwd,
               schema=database.schema,
               character_set=database.character_set,
               extargs=None,
               logfile=logfile,
               callable=func,
               timeout=timeout)
Пример #4
0
    def _postdo(root, database):
        """合并完成后特殊处理"""
        postfile = os.path.join(root, 'post.sql')
        if not os.path.exists(postfile):
            with open(postfile, 'w') as f:
                f.write('delete from var_player where `key` = 100;\n')
                f.write('update guilds set is_change_name = 0;\n')

        if os.path.exists(postfile):
            mysqlload(postfile,
                      database.get('host'),
                      database.get('port'),
                      database.get('user'),
                      database.get('passwd'),
                      database.get('schema'),
                      character_set=None,
                      extargs=None,
                      logfile=None,
                      callable=safe_fork,
                      timeout=30)
Пример #5
0
 def execute(self, timeline, root, database, timeout):
     if self.stoper[0]:
         raise exceptions.MergeException('Stop mark is true')
     _file = os.path.join(root, sqlfile(self.entity))
     logfile = os.path.join(
         root, 'insert-%d.err.%d.log' % (self.entity, timeline))
     LOG.info('Insert database of entity %d, sql file %s' %
              (self.entity, _file))
     mysqlload(_file,
               database.get('host'),
               database.get('port'),
               database.get('user'),
               database.get('passwd'),
               database.get('schema'),
               character_set=None,
               extargs=None,
               logfile=logfile,
               callable=safe_fork,
               timeout=timeout)
     LOG.info('Insert database of entity %d success' % self.entity)
     os.remove(logfile)