添加数据库初始化脚本
This commit is contained in:
61
prisma/init.sql
Normal file
61
prisma/init.sql
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
-- jdbox.accounts definition
|
||||||
|
|
||||||
|
CREATE TABLE `accounts` (
|
||||||
|
`id` varchar(191) NOT NULL,
|
||||||
|
`user_id` int(11) NOT NULL,
|
||||||
|
`type` varchar(191) NOT NULL,
|
||||||
|
`provider` varchar(191) NOT NULL,
|
||||||
|
`provider_account_id` varchar(191) NOT NULL,
|
||||||
|
`refresh_token` text DEFAULT NULL,
|
||||||
|
`access_token` text DEFAULT NULL,
|
||||||
|
`expires_at` int(11) DEFAULT NULL,
|
||||||
|
`token_type` varchar(191) DEFAULT NULL,
|
||||||
|
`scope` varchar(191) DEFAULT NULL,
|
||||||
|
`id_token` text DEFAULT NULL,
|
||||||
|
`session_state` varchar(191) DEFAULT NULL,
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
UNIQUE KEY `accounts_provider_provider_account_id_key` (`provider`,`provider_account_id`),
|
||||||
|
KEY `accounts_user_id_fkey` (`user_id`) USING BTREE
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||||
|
|
||||||
|
-- jdbox.sessions definition
|
||||||
|
|
||||||
|
CREATE TABLE `sessions` (
|
||||||
|
`id` varchar(191) NOT NULL,
|
||||||
|
`expires` datetime(3) NOT NULL,
|
||||||
|
`createdAt` datetime(3) NOT NULL DEFAULT current_timestamp(3),
|
||||||
|
`userId` int(11) NOT NULL,
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
KEY `sessions_userId_idx` (`userId`) USING BTREE
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||||
|
|
||||||
|
|
||||||
|
-- jdbox.users definition
|
||||||
|
|
||||||
|
CREATE TABLE `users` (
|
||||||
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||||
|
`name` varchar(191) DEFAULT NULL,
|
||||||
|
`createdAt` datetime(3) NOT NULL DEFAULT current_timestamp(3),
|
||||||
|
`password` varchar(191) NOT NULL,
|
||||||
|
`phone` varchar(191) NOT NULL,
|
||||||
|
`updatedAt` datetime(3) NOT NULL,
|
||||||
|
`verifiedPhone` tinyint(1) NOT NULL DEFAULT 0,
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
UNIQUE KEY `users_phone_key` (`phone`)
|
||||||
|
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||||
|
|
||||||
|
-- jdbox.verification_codes definition
|
||||||
|
|
||||||
|
CREATE TABLE `verification_codes` (
|
||||||
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||||
|
`phone` varchar(191) NOT NULL,
|
||||||
|
`code` varchar(191) NOT NULL,
|
||||||
|
`type` varchar(191) NOT NULL,
|
||||||
|
`expiresAt` datetime(3) NOT NULL,
|
||||||
|
`createdAt` datetime(3) NOT NULL DEFAULT current_timestamp(3),
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
KEY `verification_codes_phone_type_idx` (`phone`,`type`) USING BTREE
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||||
|
|
||||||
|
-- 插入初始用户
|
||||||
|
INSERT INTO users(phone, password, name) VALUES('admin', '$2a$10$k.p3.s28OdLmGCMtuvBoqOxABp03h0Zhmop4eqqlR8sIjkThCcsnS', '管理员');
|
||||||
@@ -1,48 +0,0 @@
|
|||||||
import { PrismaClient } from '@prisma/client'
|
|
||||||
import { hash } from 'bcryptjs'
|
|
||||||
|
|
||||||
const prisma = new PrismaClient()
|
|
||||||
|
|
||||||
async function main() {
|
|
||||||
console.log('🚀 开始执行种子脚本...')
|
|
||||||
|
|
||||||
try {
|
|
||||||
// 首先检查用户是否已存在
|
|
||||||
const existingUser = await prisma.user.findUnique({
|
|
||||||
where: { phone: '17516219072' }
|
|
||||||
})
|
|
||||||
|
|
||||||
if (existingUser) {
|
|
||||||
console.log('✅ 用户已存在:', existingUser)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
console.log('🔐 加密密码...')
|
|
||||||
const password = await hash('123456', 10)
|
|
||||||
console.log('✅ 加密完成')
|
|
||||||
|
|
||||||
console.log('👤 创建用户...')
|
|
||||||
const user = await prisma.user.create({
|
|
||||||
data: {
|
|
||||||
phone: '17516219072',
|
|
||||||
password: password,
|
|
||||||
name: '测试用户',
|
|
||||||
},
|
|
||||||
})
|
|
||||||
console.log('✅ 用户创建成功:', user)
|
|
||||||
|
|
||||||
} catch (error) {
|
|
||||||
console.error('❌ 种子脚本错误:', error)
|
|
||||||
throw error
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
main()
|
|
||||||
.catch((e) => {
|
|
||||||
console.error('❌ 种子脚本执行失败:', e)
|
|
||||||
process.exit(1)
|
|
||||||
})
|
|
||||||
.finally(async () => {
|
|
||||||
await prisma.$disconnect()
|
|
||||||
console.log('🔚 数据库连接已关闭')
|
|
||||||
})
|
|
||||||
Reference in New Issue
Block a user