Files
d8d-admin-mobile-starter-pu…/server/routes_migrations.ts
yourname e1b9f6fd74 使用dayjs格式化时间
显示格式为"YYYY-MM-DD HH:mm:ss"
保持表格其他功能和样式不变
确保时间显示清晰易读
2025-05-13 03:50:11 +00:00

48 lines
1.5 KiB
TypeScript

import { Hono } from 'hono'
import { APIClient } from '@d8d-appcontainer/api'
import type { Variables } from './app.tsx'
import type { WithAuth } from './app.tsx'
import { migrations } from './migrations.ts'
import debug from "debug";
const log = {
api: debug("api:migrations"),
};
export function createMigrationsRoutes(withAuth: WithAuth) {
const migrationsRoutes = new Hono<{ Variables: Variables }>()
migrationsRoutes.get('/', async (c) => {
const apiClient = c.get('apiClient')
log.api('正在执行数据库迁移...')
const migrationsResult = await apiClient.database.executeLiveMigrations(migrations)
// log.app('数据库迁移完成 %O',migrationsResult)
const failedResult = migrationsResult?.find((migration) => migration.status === 'failed')
if (failedResult) {
log.api('数据库迁移失败 %O', failedResult)
return c.json({ error: '数据库迁移失败', failedResult }, 500)
}
return c.json({ success: true })
})
migrationsRoutes.get('/history', async (c) => {
const apiClient = c.get('apiClient')
log.api('正在执行数据库迁移...')
const MIRGRATIONS_TABLE = 'knex_migrations'
const hasTable = await apiClient.database.schema.hasTable(MIRGRATIONS_TABLE);
let history = []
if(hasTable)
history = await apiClient.database.table(MIRGRATIONS_TABLE).orderBy('id', 'desc')
return c.json({
success: true,
history
})
})
return migrationsRoutes
}