def dump_mysql(instance_dir, dump_file, db_user, db_password, db_name): tables = [ t for t in pipe_to_dbshell(r"SHOW TABLES LIKE 'eve\_%';", instance_dir).split() if t.startswith('eve_') ] f = open(dump_file, 'w') try: try: dump_cmd = MYSQL_DUMP_CMD % { 'user': db_user, 'password': db_password, 'database': db_name, 'tables': ' '.join(tables) } f.write('BEGIN;\n\n') f.write('SET FOREIGN_KEY_CHECKS = 0;\n\n') for t in tables: f.write('TRUNCATE TABLE `%s`;\n' % t) f.write('\n') f.flush() run_command(dump_cmd.split(), os.path.abspath(instance_dir), stdout=f) f.flush() f.write('SET FOREIGN_KEY_CHECKS = 1;\n\n') f.write('COMMIT;\n\n') except KeyboardInterrupt: f.close() sys.exit(1) finally: f.close()
def dump_psql(instance_dir, dump_file, db_user, db_password, db_name): os.environ['PGDATABASE'] = db_name os.environ['PGUSER'] = db_user os.environ['PGPASSWORD'] = db_password tables = [ t for t in pipe_to_dbshell(r"\dt eve_*", instance_dir).split() if t.startswith('eve_') ] f = open(dump_file, 'w') try: try: dump_cmd = 'pg_dump --format=p --encoding=utf-8 --no-owner --no-privileges '\ '--quote-all-identifiers --data-only --disable-triggers --table eve_*' f.write('BEGIN;\n\n') for t in tables: f.write('TRUNCATE TABLE `%s`;\n' % t) f.write('\n') f.flush() run_command(dump_cmd.split(), os.path.abspath(instance_dir), stdout=f) f.flush() f.write('COMMIT;\n\n') except KeyboardInterrupt: f.close() sys.exit(1) finally: f.close()