diff --git a/src/utils/migration/migration.ts b/src/utils/migration/migration.ts
index 0f54724..6286465 100644
--- a/src/utils/migration/migration.ts
+++ b/src/utils/migration/migration.ts
@@ -1,18 +1,20 @@
-import * as fs from 'fs';
+import * as fs from "fs";
 import client from "../client.js";
 import _ from "lodash";
 
-const dir = './data';
+const dir = "./data";
 const files = fs.readdirSync(dir);
 
 for (const file of files) {
     // eslint-disable-next-line @typescript-eslint/no-explicit-any
     let rsmData: any;
     try {
-        rsmData = JSON.parse(fs.readFileSync(`${dir}/${file}`, 'utf8'));
-    } catch { continue }
+        rsmData = JSON.parse(fs.readFileSync(`${dir}/${file}`, "utf8"));
+    } catch {
+        continue;
+    }
     if (!rsmData.version || rsmData.version < 3) continue;
-    const nucleusData = await client.database.guilds.readOld(rsmData.guild_info.id)
+    const nucleusData = await client.database.guilds.readOld(rsmData.guild_info.id);
     const rsmToNucleus = {
         id: rsmData.guild_info.id,
         version: 1,
@@ -20,54 +22,54 @@
         filters: {
             images: {
                 NSFW: rsmData.images?.nsfw,
-                size: rsmData.images?.toosmall,
+                size: rsmData.images?.toosmall
             },
             malware: null,
             wordFilter: {
                 enabled: true,
                 words: {
                     strict: rsmData.wordfilter?.strict,
-                    loose: rsmData.wordfilter?.soft,
+                    loose: rsmData.wordfilter?.soft
                 },
                 allowed: {
                     users: rsmData.wordfilter?.ignore?.members,
                     roles: rsmData.wordfilter?.ignore?.roles,
-                    channels: rsmData.wordfilter?.ignore?.channels,
-                },
+                    channels: rsmData.wordfilter?.ignore?.channels
+                }
             },
             invite: {
                 enabled: rsmData.invite?.enabled,
                 allowed: {
                     channels: rsmData.invite?.whitelist?.members,
                     roles: rsmData.invite?.whitelist?.roles,
-                    users: rsmData.invite?.whitelist?.channels,
-                },
+                    users: rsmData.invite?.whitelist?.channels
+                }
             }
         },
         welcome: {
             enabled: true,
             role: rsmData.welcome?.role,
             channel: rsmData.welcome?.message?.channel,
-            message: rsmData.welcome?.message?.text ?? null,
+            message: rsmData.welcome?.message?.text ?? null
         },
         logging: {
             logs: {
                 enabled: true,
-                channel: rsmData.log_info?.log_channel,
+                channel: rsmData.log_info?.log_channel
             },
             staff: {
-                channel: rsmData.log_info?.staff,
+                channel: rsmData.log_info?.staff
             }
         },
         verify: {
             enabled: true,
-            role: rsmData.verify_role,
+            role: rsmData.verify_role
         },
         tickets: {
             enabled: true,
             category: rsmData.modmail?.cat,
             supportRole: rsmData.modmail?.mention,
-            maxTickets: rsmData.modmail?.max,
+            maxTickets: rsmData.modmail?.max
         },
         tags: rsmData.tags
     } as Partial<ReturnType<typeof client.database.guilds.read>>;
@@ -75,5 +77,4 @@
     const merged = _.merge(nucleusData, rsmToNucleus);
     // console.log(merged)
     await client.database.guilds.write(merged.id!, merged);
-
 }
