#!/usr/bin/env python # -*- coding: utf-8 -*- import sqlite3 import os import hashlib DATABASE_PATH = os.path.join(os.path.dirname(__file__), '../database/app.db') def hash_password(password): return hashlib.sha256(password.encode('utf-8')).hexdigest() def migrate(): conn = sqlite3.connect(DATABASE_PATH) cursor = conn.cursor() print('开始迁移管理员表...') try: cursor.execute(''' CREATE TABLE IF NOT EXISTS admin_users ( id INTEGER PRIMARY KEY AUTOINCREMENT, username TEXT UNIQUE NOT NULL, password TEXT NOT NULL, created_at DATETIME DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ) ''') print('管理员表创建成功') cursor.execute(''' CREATE TABLE IF NOT EXISTS admin_sessions ( id INTEGER PRIMARY KEY AUTOINCREMENT, admin_id INTEGER NOT NULL, token TEXT UNIQUE NOT NULL, created_at DATETIME DEFAULT CURRENT_TIMESTAMP, expires_at DATETIME NOT NULL, FOREIGN KEY (admin_id) REFERENCES admin_users(id) ) ''') print('管理后台会话表创建成功') cursor.execute('SELECT id FROM admin_users WHERE username = ?', ('admin',)) if not cursor.fetchone(): admin_password = hash_password('admin') cursor.execute(''' INSERT INTO admin_users (username, password) VALUES (?, ?) ''', ('admin', admin_password)) print('默认管理员账号创建成功:用户名 admin,密码 admin') conn.commit() print('迁移完成!') except Exception as e: print(f'迁移失败: {e}') conn.rollback() finally: conn.close() if __name__ == '__main__': migrate()