| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- """
- 快速恢复PostgreSQL备份脚本
- """
- import sys
- from pathlib import Path
- # 添加当前目录到路径
- sys.path.insert(0, str(Path(__file__).parent))
- from postgresql import restore_from_backup
- def main():
- # 备份路径
- backup_path = r"D:\code\vue\greater_wms\backup\base_backup\20260103_144522"
-
- # 检查是否有命令行参数(非交互模式)
- auto_confirm = len(sys.argv) > 1 and sys.argv[1] == '--yes'
-
- print("=" * 60)
- print("PostgreSQL 数据库恢复工具")
- print("=" * 60)
- print(f"\n备份路径: {backup_path}")
- print("\n警告:此操作将覆盖现有数据库数据!")
- print("当前数据目录将被备份到新位置。")
-
- if not auto_confirm:
- try:
- confirm = input("\n确认要继续恢复吗?(yes/no): ").strip().lower()
- if confirm != 'yes':
- print("操作已取消")
- return
- except EOFError:
- print("\n非交互模式,使用 --yes 参数自动确认")
- print("操作已取消")
- return
-
- print("\n开始恢复...")
- print("-" * 60)
-
- success = restore_from_backup(backup_path)
-
- print("-" * 60)
- if success:
- print("\n[成功] 数据库恢复成功!")
- print("PostgreSQL 服务已启动,可以开始使用数据库了。")
- else:
- print("\n[失败] 数据库恢复失败!")
- print("请查看日志文件 postgres_service_manager.log 获取详细信息。")
- sys.exit(1)
- if __name__ == "__main__":
- main()
|