blob: 13977af368c805a4270dca71f7bc80a82b11bd01 [file] [log] [blame]
-- 创建数据库(如果不存在)
-- 请确保您的Docker Compose配置中的数据库名称与此处一致
CREATE DATABASE IF NOT EXISTS mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- 切换到目标数据库
USE mydatabase;
-- 删除表(如果已存在),以便重新创建
DROP TABLE IF EXISTS `user`;
-- 创建用户表
CREATE TABLE `user` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '用户ID,主键,自增长',
`username` VARCHAR(50) NOT NULL UNIQUE COMMENT '用户名,唯一,不可为空',
`password` VARCHAR(100) NOT NULL COMMENT '密码,存储加密后的密码,不可为空',
`email` VARCHAR(100) NULL DEFAULT NULL COMMENT '邮箱地址',
`status` INT NOT NULL DEFAULT 1 COMMENT '用户状态,例如 0:禁用, 1:启用,默认为1',
`score` INT NOT NULL DEFAULT 0 COMMENT '用户积分,默认为0',
`role` VARCHAR(20) NOT NULL DEFAULT 'USER' COMMENT '用户角色,例如 ADMIN, USER,默认为USER',
`create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_username` (`username`) -- 确保用户名唯一
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户表';
-- 可选:插入一条测试用户数据
-- 请注意:这里的密码 'password123' 是明文,您需要用您应用中配置的BCryptPasswordEncoder加密后的密码替换它
-- 例如,使用 Spring Security 的 BCryptPasswordEncoder 对 'your_secure_password' 进行加密
-- SELECT '$2a$10$YOUR_BCRYPT_HASH_HERE'; -- 替换这里的哈希值
INSERT INTO `user` (`username`, `password`, `email`, `status`, `score`, `role`, `create_time`, `update_time`)
VALUES (
'testuser',
'$$2a$10$EEBnvonhdTGA0StQHdxMUeAQyxm1uvJOKkHu01Pe0B9a2vfGH3cge', -- 请用加密后的密码替换此处的占位符
'test@example.com',
1, -- 启用状态
100, -- 初始积分
'USER', -- 默认角色
CURRENT_TIMESTAMP,
CURRENT_TIMESTAMP
);