Skip to content

Commit a64859d

Browse files
committed
chore(milestone-2-enhancements): Add proper seeding behavior
Signed-off-by: SeeuSim <[email protected]>
1 parent b39522a commit a64859d

File tree

7 files changed

+46
-32
lines changed

7 files changed

+46
-32
lines changed
File renamed without changes.

backend/question/drizzle/meta/_journal.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"idx": 0,
77
"version": "7",
88
"when": 1727595727110,
9-
"tag": "0000_bizarre_midnight",
9+
"tag": "0000_initial_schema",
1010
"breakpoints": true
1111
}
1212
]

backend/question/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@
1010
"build:prod": "env-cmd -f .env.prod tsc && tsc-alias",
1111
"start:prod": "env-cmd -f .env.local node dist/index.js",
1212
"db:generate": "env-cmd -f .env.local drizzle-kit generate",
13-
"db:migrate": "env-cmd -f .env.local tsx drizzle.migrate.ts",
13+
"db:migrate": "env-cmd -f .env.local tsx ./src/lib/db/migrate.ts",
14+
"db:seed": "env-cmd -f .env.local tsx ./src/lib/db/seed.ts",
1415
"db:inspect": "env-cmd -f .env.local drizzle-kit studio",
1516
"fmt": "prettier --config .prettierrc src --write",
1617
"test": "echo \"Error: no test specified\" && exit 1"
File renamed without changes.
File renamed without changes.
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
import { sql } from 'drizzle-orm';
2+
3+
import { db, questions } from '@/lib/db';
4+
import { questionData } from './sample-data/questions';
5+
6+
const seedQuestions = async () => {
7+
try {
8+
await db.transaction(async (trx) => {
9+
// Delete all questions (not table)
10+
await trx.delete(questions);
11+
12+
// Reset Serial to start index 1
13+
await trx.execute(sql`
14+
SELECT setval(
15+
pg_get_serial_sequence('questions', 'id'),
16+
COALESCE(max(id) + 1, 1),
17+
false
18+
)
19+
FROM questions;
20+
`);
21+
22+
for (const question of questionData) {
23+
await trx
24+
.insert(questions)
25+
.values({ ...question, id: undefined }) // Let DB set ID
26+
.onConflictDoNothing();
27+
}
28+
});
29+
} catch (error) {
30+
console.log('Error seeding question data', error);
31+
process.exit(1);
32+
}
33+
};
34+
35+
void seedQuestions()
36+
.then(() => {
37+
console.log('Seeding completed successfully.');
38+
process.exit(0);
39+
})
40+
.catch((error) => {
41+
console.error('Error during seeding:', error);
42+
process.exit(1);
43+
});

backend/question/src/seeder/question-seeder.ts

Lines changed: 0 additions & 30 deletions
This file was deleted.

0 commit comments

Comments
 (0)