Kaynağa Gözat

迁移/回滚操作后的自动刷新

yourname 6 ay önce
ebeveyn
işleme
d58cae4613

+ 6 - 0
client/migrations/migrations_app.tsx

@@ -47,6 +47,9 @@ const MigrationsApp: React.FC = () => {
       
       const response = await axios.get('/api/migrations');
       setMigrationResult(response.data);
+      if (response.data.success) {
+        queryClient.invalidateQueries({ queryKey: ['migrations-history'] });
+      }
     } catch (error: any) {
       setMigrationResult({
         success: false,
@@ -65,6 +68,9 @@ const MigrationsApp: React.FC = () => {
       
       const response = await axios.get(`/api/migrations/rollback?all=${all}`);
       setMigrationResult(response.data);
+      if (response.data.success) {
+        queryClient.invalidateQueries({ queryKey: ['migrations-history'] });
+      }
     } catch (error: any) {
       setMigrationResult({
         success: false,

+ 1 - 9
server/migrations.ts

@@ -1,19 +1,11 @@
 import type { MigrationLiveDefinition } from '@d8d-appcontainer/types'
 
-import {
-  EnableStatus, DeleteStatus,
-  AuditStatus, ThemeMode, FontSize, CompactMode,
-  SystemSettingKey,
-  SystemSettingGroup,
-  ALLOWED_FILE_TYPES,
-} from '../client/share/types.ts';
-
 // 动态加载迁移文件
 const migrations: MigrationLiveDefinition[] = [];
 
 try {
   // 读取并加载所有迁移文件
-  const migrationsDir = './server/migrations';
+  const migrationsDir = import.meta.dirname + '/migrations'; 
   
   for await (const entry of Deno.readDir(migrationsDir)) {
     if (!entry.isFile || !entry.name.endsWith('.ts')) continue;

+ 6 - 6
server/migrations/010_seedInitialData.ts

@@ -279,12 +279,12 @@ const seedInitialData: MigrationLiveDefinition = {
     ]);
   },
   down: async (api) => {
-    // 删除初始数据
-    await api.table('login_history').where('user_id', 1).delete();
-    await api.table('theme_settings').where('user_id', 1).delete();
-    await api.table('know_info').delete();
-    await api.table('file_categories').delete();
-    await api.table('users').where('username', 'admin').delete();
+    // // 删除初始数据
+    // await api.table('login_history').where('user_id', 1).delete();
+    // await api.table('theme_settings').where('user_id', 1).delete();
+    // await api.table('know_info').delete();
+    // await api.table('file_categories').delete();
+    // await api.table('users').where('username', 'admin').delete();
   }
 }