forked from BRETT/BRETT
23 lines
719 B
TypeScript
23 lines
719 B
TypeScript
import { drizzle } from 'drizzle-orm/mysql2'
|
|
import { migrate } from 'drizzle-orm/mysql2/migrator'
|
|
import mysql from 'mysql2/promise'
|
|
import { seedPermissions } from '../../shared/utils/permissions'
|
|
|
|
export default defineNitroPlugin(async () => {
|
|
if (!import.meta.dev) return
|
|
const { databaseUrl } = useRuntimeConfig()
|
|
if (!databaseUrl) {
|
|
console.warn('[db] DATABASE_URL is not set, skipping migrations')
|
|
return
|
|
}
|
|
const connection = await mysql.createConnection(databaseUrl)
|
|
try {
|
|
await migrate(drizzle(connection), { migrationsFolder: './server/db/migrations' })
|
|
await seedPermissions(connection)
|
|
console.log('[db] migrations applied')
|
|
}
|
|
finally {
|
|
await connection.end()
|
|
}
|
|
})
|