大家好,
使用mysqldump,我导出数据库的模式和数据。
这是我的代码:
self.BACKUP_PATH = 'SqlBackup'
self.FILE_NAME_SCHEMA = self.BACKUP_PATH + '/tribot_schema_pack.sql'
self.FILE_NAME_DATA_PACK = self.BACKUP_PATH + '/tribot_data_pack.sql'
self.MYSQL_SETTINGS = '-h ' + self.DB_HOST + ' -u ' + self.DB_USER + ' --password=' + self.DB_USER_PASSWORD
self.DUMP_CODE = self.MYSQL_DUMP_DIR + '/mysqldump ' + self.MYSQL_SETTINGS
self.DUMP_MYSQL_CODE = self.MYSQL_DUMP_DIR + '/mysql ' + self.MYSQL_SETTINGS
command_schema = '%s --no-data --skip-triggers %s > %s' % \
(self.DUMP_CODE, self.DB_NAME, pipes.quote(self.FILE_NAME_SCHEMA))
command_data = '%s --no-create-info %s > %s' % \
(self.DUMP_CODE, self.DB_NAME, pipes.quote(self.FILE_NAME_DATA_PACK))
subprocess.Popen(command_schema, shell=True).wait()
subprocess.Popen(command_data, shell=True).wait()
我如何在导出时不导入索引和触发器?
答案 0 :(得分:0)
command_schema = '%s --no-data --skip-triggers --disable-keys %s > %s' % \
(self.DUMP_CODE, self.DB_NAME, pipes.quote(self.FILE_NAME_SCHEMA))
command_data = '%s --no-create-info --skip-triggers --disable-keys %s > %s' % \
"`ALTER TABLE tribot_place_raw_placetags DROP FOREIGN KEY tribot_place_raw_placetags_citynames;`"
"`ALTER TABLE ``tribot_place_raw_placetags`` DROP INDEX ``tribot_place_raw_placetags_citynames``;`"
我没有得到这样的触发器:-跳过触发器
不幸的是,对于键I,请删除我在示例中出现的键;
"`ALTER TABLE tribot_place_raw_placetags DROP FOREIGN KEY tribot_place_raw_placetags_citynames;`"
"`ALTER TABLE ``tribot_place_raw_placetags`` DROP INDEX ``tribot_place_raw_placetags_citynames``;`"