wangxq 5d77b3db76 统一日志配置 1 month ago
..
README.md ff40167dac The first initialization of the project 2 months ago
create_user_table.sql ff40167dac The first initialization of the project 2 months ago
init_db.py 5d77b3db76 统一日志配置 1 month ago
migrate_users.py 5d77b3db76 统一日志配置 1 month ago

README.md

数据库初始化脚本

本目录包含用于初始化数据库的脚本,特别是用户认证相关的表和索引。

用户表初始化

用户数据现在存储在PostgreSQL数据库中,表名为users。有两种方式可以初始化用户表:

1. 使用Python脚本

运行以下命令可以自动创建用户表和相关索引:

# 在项目根目录执行
python app/scripts/init_db.py

这将自动创建以下内容:

  • 用户表结构
  • 用户名索引

2. 使用SQL脚本

如果你想直接在PostgreSQL客户端中执行,可以使用提供的SQL脚本:

# 使用psql命令行工具执行
psql -U postgres -d dataops -f app/scripts/create_user_table.sql

# 或者直接在pgAdmin或其他PostgreSQL客户端中复制粘贴脚本内容执行

数据库连接配置

数据库连接配置在app/core/system/auth.py文件中的get_pg_connection函数中定义:

pg_pool = psycopg2.pool.SimpleConnectionPool(
    1, 20,
    host="localhost",
    database="dataops",
    user="postgres",
    password="postgres",
    port="5432"
)

在生产环境中,建议将这些连接参数移至配置文件或环境变量中。

用户表结构

用户表(users)具有以下字段:

  • id (VARCHAR(100)): 用户唯一标识符,主键
  • username (VARCHAR(50)): 用户名,唯一非空
  • password (VARCHAR(100)): 密码(使用base64编码),非空
  • created_at (FLOAT): 创建时间戳,非空
  • last_login (FLOAT): 最后登录时间戳
  • is_admin (BOOLEAN): 是否为管理员,默认为false

用户数据迁移

如果您之前使用的是文件存储方式,可以使用以下命令将用户数据迁移到数据库:

python app/scripts/migrate_users.py

这个脚本会:

  1. 读取app/data/users.json文件中的用户数据
  2. 将数据导入到PostgreSQL数据库的users表中
  3. 备份原始JSON文件

安全建议

在生产环境中,建议进行以下安全增强:

  1. 使用更强的密码哈希算法(如bcrypt)替代base64编码
  2. 将数据库连接参数存储在环境变量或安全的配置文件中
  3. 为数据库用户设置最小权限原则
  4. 启用PostgreSQL的SSL连接
  5. 定期备份用户数据