| -- 创建数据库(如果不存在) |
| -- 请确保您的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 |
| ); |
| |
| |