增加打包脚本
This commit is contained in:
parent
320c5d1f22
commit
6deb809f3c
@ -24,27 +24,21 @@ def setup_logging(config_level, log_file='migration.log', file_mode='a'):
|
|||||||
numeric_level = getattr(logging, config_level.upper(), None)
|
numeric_level = getattr(logging, config_level.upper(), None)
|
||||||
if not isinstance(numeric_level, int):
|
if not isinstance(numeric_level, int):
|
||||||
raise ValueError(f'Invalid log level: {config_level}')
|
raise ValueError(f'Invalid log level: {config_level}')
|
||||||
|
# 日志记录器
|
||||||
# 创建一个日志记录器
|
|
||||||
logger = logging.getLogger()
|
logger = logging.getLogger()
|
||||||
logger.setLevel(numeric_level)
|
logger.setLevel(numeric_level)
|
||||||
|
# 控制台日志处理器
|
||||||
# 创建一个控制台日志处理器并设置级别
|
|
||||||
ch = logging.StreamHandler()
|
ch = logging.StreamHandler()
|
||||||
ch.setLevel(numeric_level)
|
ch.setLevel(numeric_level)
|
||||||
|
# 文件日志处理器
|
||||||
# 创建一个文件日志处理器并设置级别
|
|
||||||
fh = logging.FileHandler(log_file, mode=file_mode)
|
fh = logging.FileHandler(log_file, mode=file_mode)
|
||||||
fh.setLevel(numeric_level)
|
fh.setLevel(numeric_level)
|
||||||
|
# 日志格式器
|
||||||
# 创建一个日志格式器
|
formatter = logging.Formatter('%(asctime)s [Thread ID:%(thread)d] [%(threadName)s] %(levelname)s: %(message)s')
|
||||||
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
|
# 添加格式器
|
||||||
|
|
||||||
# 为处理器添加格式器
|
|
||||||
ch.setFormatter(formatter)
|
ch.setFormatter(formatter)
|
||||||
fh.setFormatter(formatter)
|
fh.setFormatter(formatter)
|
||||||
|
# 添加处理器
|
||||||
# 为日志记录器添加处理器
|
|
||||||
logger.addHandler(ch)
|
logger.addHandler(ch)
|
||||||
logger.addHandler(fh)
|
logger.addHandler(fh)
|
||||||
|
|
||||||
@ -89,7 +83,7 @@ class DBMigrator:
|
|||||||
self.batch_size = batch_size
|
self.batch_size = batch_size
|
||||||
|
|
||||||
def clear_target_database(self):
|
def clear_target_database(self):
|
||||||
# 彻底删除目标数据库所有表
|
# 删除目标数据库所有表
|
||||||
try:
|
try:
|
||||||
with DatabaseConnection(self.target_config) as target_db:
|
with DatabaseConnection(self.target_config) as target_db:
|
||||||
with target_db.cursor() as cursor:
|
with target_db.cursor() as cursor:
|
||||||
@ -114,7 +108,7 @@ class DBMigrator:
|
|||||||
source_cursor.execute(f"SHOW CREATE TABLE {table};")
|
source_cursor.execute(f"SHOW CREATE TABLE {table};")
|
||||||
create_table_sql = source_cursor.fetchone()[1]
|
create_table_sql = source_cursor.fetchone()[1]
|
||||||
|
|
||||||
# 检查并修正BIT(1)类型字段的默认值表示
|
# 检查并修正BIT(1)类型字段的默认值表示, 当前脚本为简单替换,其他方案待讨论
|
||||||
corrected_sql = self.correct_bit_default_value(create_table_sql)
|
corrected_sql = self.correct_bit_default_value(create_table_sql)
|
||||||
|
|
||||||
target_cursor.execute(corrected_sql)
|
target_cursor.execute(corrected_sql)
|
||||||
@ -204,7 +198,7 @@ def main():
|
|||||||
args = parse_args()
|
args = parse_args()
|
||||||
config = load_config(args.config)
|
config = load_config(args.config)
|
||||||
setup_logging(config["logging"]["level"], log_file='migration.log', file_mode='a')
|
setup_logging(config["logging"]["level"], log_file='migration.log', file_mode='a')
|
||||||
# 更新数据库配置,如果通过命令行提供了具体信息
|
# 更新数据库配置,如果参数传入,则使用参数中的配置
|
||||||
if args.source_host and args.target_host:
|
if args.source_host and args.target_host:
|
||||||
source_config = {
|
source_config = {
|
||||||
"host": args.source_host,
|
"host": args.source_host,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user