Files
everything-is-suitable/scripts/init-test-data.ts
T
张翔 08ea5fbe98 feat(admin): 添加用户管理相关文件
添加用户管理视图、API和状态管理文件
2026-03-28 14:37:29 +08:00

66 lines
2.0 KiB
TypeScript

import { Pool } from 'pg';
const pool = new Pool({
host: process.env.DB_HOST || 'localhost',
port: parseInt(process.env.DB_PORT || '55432'),
database: process.env.DB_NAME || 'everything_suitable_test',
user: process.env.DB_USERNAME || 'postgres',
password: process.env.DB_PASSWORD || 'postgres',
});
async function initTestData() {
const client = await pool.connect();
try {
await client.query('BEGIN');
// 清理测试数据
console.log('清理测试数据...');
await client.query('TRUNCATE TABLE test_data.users CASCADE');
await client.query('TRUNCATE TABLE test_data.roles CASCADE');
await client.query('TRUNCATE TABLE test_data.menus CASCADE');
// 创建测试用户
console.log('创建测试用户...');
await client.query(`
INSERT INTO test_data.users (username, password, email, status) VALUES
('admin', 'admin123', 'admin@example.com', 'active'),
('user1', 'user123', 'user1@example.com', 'active'),
('user2', 'user123', 'user2@example.com', 'active')
`);
// 创建测试角色
console.log('创建测试角色...');
await client.query(`
INSERT INTO test_data.roles (name, code, status) VALUES
('管理员', 'admin', 1),
('普通用户', 'user', 1)
`);
// 创建测试菜单
console.log('创建测试菜单...');
await client.query(`
INSERT INTO test_data.menus (name, path, type, status) VALUES
('用户管理', '/user-management', 1, 0),
('角色管理', '/role-management', 1, 0),
('菜单管理', '/menu-management', 1, 0)
`);
await client.query('COMMIT');
console.log('✅ 测试数据初始化完成');
} catch (error) {
await client.query('ROLLBACK');
console.error('❌ 测试数据初始化失败:', error);
throw error;
} finally {
client.release();
}
}
initTestData()
.then(() => process.exit(0))
.catch((error) => {
console.error(error);
process.exit(1);
});