linux安装优化

新增脚本
This commit is contained in:
2026-03-17 09:41:37 +08:00
parent 2f2d5c3795
commit 846d35d112
5 changed files with 441 additions and 24 deletions

View File

@@ -1,15 +1,24 @@
-- Weibo-HotSign Database Initialization Script for MySQL
-- Create tables according to development document specification
-- 创建数据库和表结构
CREATE DATABASE IF NOT EXISTS weibo_hotsign DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE weibo_hotsign;
-- Users table
CREATE TABLE IF NOT EXISTS users (
id CHAR(36) PRIMARY KEY,
username VARCHAR(50) UNIQUE NOT NULL,
email VARCHAR(255) UNIQUE NOT NULL,
hashed_password VARCHAR(255) NOT NULL,
email VARCHAR(255) UNIQUE,
hashed_password VARCHAR(255),
wx_openid VARCHAR(64) UNIQUE,
wx_nickname VARCHAR(100),
wx_avatar VARCHAR(500),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
is_active BOOLEAN DEFAULT TRUE
);
is_active BOOLEAN DEFAULT TRUE,
INDEX idx_users_email (email),
INDEX idx_users_username (username),
INDEX idx_users_wx_openid (wx_openid)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- Accounts table
CREATE TABLE IF NOT EXISTS accounts (
@@ -22,8 +31,10 @@ CREATE TABLE IF NOT EXISTS accounts (
status VARCHAR(20) DEFAULT 'pending',
last_checked_at TIMESTAMP NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
INDEX idx_accounts_user_id (user_id),
INDEX idx_accounts_status (status),
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
);
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- Tasks table
CREATE TABLE IF NOT EXISTS tasks (
@@ -32,8 +43,10 @@ CREATE TABLE IF NOT EXISTS tasks (
cron_expression VARCHAR(50) NOT NULL,
is_enabled BOOLEAN DEFAULT TRUE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
INDEX idx_tasks_account_id (account_id),
INDEX idx_tasks_is_enabled (is_enabled),
FOREIGN KEY (account_id) REFERENCES accounts(id) ON DELETE CASCADE
);
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- Signin logs table
CREATE TABLE IF NOT EXISTS signin_logs (
@@ -44,21 +57,8 @@ CREATE TABLE IF NOT EXISTS signin_logs (
reward_info JSON,
error_message TEXT,
signed_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
INDEX idx_signin_logs_account_id (account_id),
INDEX idx_signin_logs_signed_at (signed_at),
INDEX idx_signin_logs_status (status),
FOREIGN KEY (account_id) REFERENCES accounts(id)
);
-- Create indexes for better performance
CREATE INDEX idx_users_email ON users(email);
CREATE INDEX idx_users_username ON users(username);
CREATE INDEX idx_accounts_user_id ON accounts(user_id);
CREATE INDEX idx_accounts_status ON accounts(status);
CREATE INDEX idx_tasks_account_id ON tasks(account_id);
CREATE INDEX idx_tasks_is_enabled ON tasks(is_enabled);
CREATE INDEX idx_signin_logs_account_id ON signin_logs(account_id);
CREATE INDEX idx_signin_logs_signed_at ON signin_logs(signed_at);
CREATE INDEX idx_signin_logs_status ON signin_logs(status);
-- Insert sample data for testing (optional)
-- Note: UUIDs must be provided by the application
-- INSERT INTO users (id, username, email, hashed_password) VALUES
-- ('your-uuid-here', 'testuser', 'test@example.com', '$2b$12$hashed_password_here');
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;