init_db.py 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. """
  4. 数据库初始化脚本
  5. 创建必要的数据库表和初始数据
  6. """
  7. import os
  8. import sys
  9. import logging
  10. # 添加项目根目录到Python路径
  11. sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
  12. from app.core.system.auth import init_db
  13. from app.config.config import config, current_env
  14. # 获取配置
  15. app_config = config[current_env]
  16. # 配置日志
  17. log_level_name = getattr(app_config, 'LOG_LEVEL', 'INFO')
  18. log_level = getattr(logging, log_level_name)
  19. log_format = getattr(app_config, 'LOG_FORMAT', '%(asctime)s - %(name)s - %(levelname)s - %(message)s')
  20. logging.basicConfig(
  21. level=log_level,
  22. format=log_format
  23. )
  24. logger = logging.getLogger(__name__)
  25. def init_database():
  26. """
  27. 初始化数据库,创建必要的表和索引
  28. """
  29. logger.info("开始初始化数据库...")
  30. # 初始化用户表
  31. if init_db():
  32. logger.info("用户表初始化成功")
  33. else:
  34. logger.error("用户表初始化失败")
  35. # 可以在这里添加其他表的初始化
  36. logger.info("数据库初始化完成")
  37. if __name__ == "__main__":
  38. try:
  39. init_database()
  40. except Exception as e:
  41. logger.error(f"数据库初始化失败: {str(e)}")
  42. sys.exit(1)
  43. sys.exit(0)