Update migrations
This commit is contained in:
92
server/plugins/migrate.ts
Normal file
92
server/plugins/migrate.ts
Normal file
@@ -0,0 +1,92 @@
|
||||
import { migrate } from "drizzle-orm/bun-sqlite/migrator";
|
||||
import path from "node:path";
|
||||
|
||||
export default defineNitroPlugin(async (nitroApp) => {
|
||||
const db = useDrizzle();
|
||||
const migrationsFolder = path.resolve("server/database/migrations");
|
||||
|
||||
console.log("Running database migrations...");
|
||||
console.log(`Migrations folder: ${migrationsFolder}`);
|
||||
migrate(db, { migrationsFolder });
|
||||
|
||||
console.log("Database migrations complete");
|
||||
|
||||
const feedFile = Bun.file(path.resolve("tmp/feed.json"));
|
||||
const feedData = await feedFile.json().catch((err) => {
|
||||
console.log(err.message);
|
||||
|
||||
return [];
|
||||
});
|
||||
|
||||
for (const item of feedData) {
|
||||
const userId = String(item.user.id);
|
||||
|
||||
await db
|
||||
.insert(tables.users)
|
||||
.values({
|
||||
id: userId,
|
||||
name: item.user.name,
|
||||
avatar: item.user.avatar,
|
||||
city: item.user.city,
|
||||
country: item.user.country,
|
||||
sex: item.user.sex,
|
||||
weight: item.user.weight,
|
||||
createdAt: new Date(item.user.created_at),
|
||||
})
|
||||
.onConflictDoUpdate({
|
||||
target: tables.users.id,
|
||||
set: {
|
||||
name: item.user.name,
|
||||
avatar: item.user.avatar,
|
||||
city: item.user.city,
|
||||
country: item.user.country,
|
||||
sex: item.user.sex,
|
||||
weight: item.user.weight,
|
||||
},
|
||||
});
|
||||
|
||||
await db
|
||||
.insert(tables.tokens)
|
||||
.values({
|
||||
userId: userId,
|
||||
refreshToken: item.token.refresh_token,
|
||||
accessToken: item.token.access_token,
|
||||
expiresAt: new Date(item.token.expires_at),
|
||||
})
|
||||
.onConflictDoUpdate({
|
||||
target: tables.tokens.userId,
|
||||
set: {
|
||||
refreshToken: item.token.refresh_token,
|
||||
accessToken: item.token.access_token,
|
||||
expiresAt: new Date(item.token.expires_at),
|
||||
},
|
||||
});
|
||||
|
||||
await db
|
||||
.insert(tables.preferences)
|
||||
.values({
|
||||
userId: userId,
|
||||
data: {
|
||||
enabled: item.preferences.enabled,
|
||||
language: item.preferences.language,
|
||||
units: item.preferences.units,
|
||||
tone: item.preferences.tone,
|
||||
highlights: [],
|
||||
},
|
||||
})
|
||||
.onConflictDoUpdate({
|
||||
target: tables.preferences.userId,
|
||||
set: {
|
||||
data: {
|
||||
enabled: item.preferences.enabled,
|
||||
language: item.preferences.language,
|
||||
units: item.preferences.units,
|
||||
tone: item.preferences.tone,
|
||||
highlights: [],
|
||||
},
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
console.log(`Processed ${feedData.length} feed items`);
|
||||
});
|
||||
Reference in New Issue
Block a user