Skip to content

Commit 9a47a27

Browse files
committed
add seed
1 parent 77eec8f commit 9a47a27

File tree

3 files changed

+38
-2
lines changed

3 files changed

+38
-2
lines changed

package.json

+2
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
"prestart": "tsup src/config --onSuccess \"node dist/database.js\"",
88
"start": "node dist/server.js",
99
"dev": "tsup src/server.ts --watch --onSuccess \"node dist/server.js\"",
10+
"seed": "tsx src/db/seed.ts",
1011
"build": "tsup",
1112
"prettier:fix": "npx prettier --write .",
1213
"lint": "eslint 'src/**/*.ts' --fix"
@@ -23,6 +24,7 @@
2324
"express": "^4.21.1",
2425
"jsonwebtoken": "^9.0.2",
2526
"pg": "^8.13.0",
27+
"tsx": "^4.19.2",
2628
"zod": "^3.23.8"
2729
},
2830
"devDependencies": {

src/db/seed.ts

+12
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import pool from "config/database";
22
import bcrypt from "bcrypt";
3+
import { initializeDatabase } from "./setup";
34

45
const seedData = [
56
{
@@ -10,9 +11,15 @@ const seedData = [
1011
];
1112

1213
export async function seedDatabase() {
14+
await initializeDatabase();
15+
1316
const client = await pool.connect();
1417
try {
1518
await client.query("BEGIN");
19+
20+
// Clear the users table
21+
await client.query("TRUNCATE TABLE users RESTART IDENTITY CASCADE");
22+
1623
for (const { username, email, password } of seedData) {
1724
const hashedPassword = await bcrypt.hash(password, 10);
1825
await client.query(`INSERT INTO users (username, email, password) VALUES ($1, $2, $3)`, [
@@ -29,3 +36,8 @@ export async function seedDatabase() {
2936
client.release();
3037
}
3138
}
39+
40+
seedDatabase()
41+
.then(() => console.log("Database seeded successfully"))
42+
.catch((error) => console.error("Database seeding failed:", error))
43+
.finally(() => pool.end());

yarn.lock

+24-2
Original file line numberDiff line numberDiff line change
@@ -1014,7 +1014,7 @@ es-errors@^1.3.0:
10141014
resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f"
10151015
integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==
10161016

1017-
esbuild@^0.23.0:
1017+
esbuild@^0.23.0, esbuild@~0.23.0:
10181018
version "0.23.1"
10191019
resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.23.1.tgz#40fdc3f9265ec0beae6f59824ade1bd3d3d2dab8"
10201020
integrity sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==
@@ -1376,7 +1376,7 @@ fs.realpath@^1.0.0:
13761376
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
13771377
integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
13781378

1379-
fsevents@~2.3.2:
1379+
fsevents@~2.3.2, fsevents@~2.3.3:
13801380
version "2.3.3"
13811381
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6"
13821382
integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==
@@ -1417,6 +1417,13 @@ get-stream@^6.0.0:
14171417
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7"
14181418
integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==
14191419

1420+
get-tsconfig@^4.7.5:
1421+
version "4.8.1"
1422+
resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.8.1.tgz#8995eb391ae6e1638d251118c7b56de7eb425471"
1423+
integrity sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==
1424+
dependencies:
1425+
resolve-pkg-maps "^1.0.0"
1426+
14201427
glob-parent@^5.1.2, glob-parent@~5.1.2:
14211428
version "5.1.2"
14221429
resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
@@ -2312,6 +2319,11 @@ resolve-from@^5.0.0:
23122319
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69"
23132320
integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==
23142321

2322+
resolve-pkg-maps@^1.0.0:
2323+
version "1.0.0"
2324+
resolved "https://registry.yarnpkg.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz#616b3dc2c57056b5588c31cdf4b3d64db133720f"
2325+
integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==
2326+
23152327
resolve@^1.10.1:
23162328
version "1.22.8"
23172329
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d"
@@ -2693,6 +2705,16 @@ tsup@^8.3.0:
26932705
tinyglobby "^0.2.1"
26942706
tree-kill "^1.2.2"
26952707

2708+
tsx@^4.19.2:
2709+
version "4.19.2"
2710+
resolved "https://registry.yarnpkg.com/tsx/-/tsx-4.19.2.tgz#2d7814783440e0ae42354d0417d9c2989a2ae92c"
2711+
integrity sha512-pOUl6Vo2LUq/bSa8S5q7b91cgNSjctn9ugq/+Mvow99qW6x/UZYwzxy/3NmqoT66eHYfCVvFvACC58UBPFf28g==
2712+
dependencies:
2713+
esbuild "~0.23.0"
2714+
get-tsconfig "^4.7.5"
2715+
optionalDependencies:
2716+
fsevents "~2.3.3"
2717+
26962718
type-check@^0.4.0, type-check@~0.4.0:
26972719
version "0.4.0"
26982720
resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1"

0 commit comments

Comments
 (0)