Skip to content

Commit 862b7ba

Browse files
Fixed Local Startup Errors: Unique Id Error on restart of docker containers & Added openssl package to Dockerfile
1 parent 109c526 commit 862b7ba

File tree

3 files changed

+147
-141
lines changed

3 files changed

+147
-141
lines changed

Dockerfile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ WORKDIR /usr/src/app
44

55
COPY . .
66

7+
RUN apk add --no-cache openssl
8+
79
RUN yarn install
810

911
EXPOSE 3000

docker-compose.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ services:
33
build:
44
context: .
55
dockerfile: Dockerfile
6-
container_name: daily-code-docker
6+
container_name: daily-code-app
77
environment:
88
- DATABASE_URL=postgresql://postgres:postgres@db:5432/postgres
99
ports:

packages/db/prisma/seed.ts

Lines changed: 144 additions & 140 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@ async function main() {
77
if (!hashID.includes(seed.data.id)) {
88
try {
99
const alreadyExists = await db.track.findUnique({
10-
where:{
11-
id:seed.data.id
12-
}
13-
})
14-
if(!alreadyExists){
10+
where: {
11+
id: seed.data.id,
12+
},
13+
});
14+
if (!alreadyExists) {
1515
const track = await db.track.create({
1616
data: seed.data,
1717
});
@@ -22,161 +22,165 @@ async function main() {
2222
}
2323
}
2424
}
25-
26-
await db.categories.create({
27-
data: {
25+
const categories = [
26+
{
2827
id: "web-development",
2928
category: "Web Development",
3029
},
31-
});
32-
33-
await db.categories.create({
34-
data: {
30+
{
3531
id: "adv-web-development",
3632
category: "Advance Web Development",
3733
},
38-
});
39-
40-
await db.categories.create({
41-
data: {
34+
{
4235
id: "dsa",
4336
category: "Data Structures and Algorithms",
4437
},
45-
});
46-
47-
await db.categories.create({
48-
data: {
38+
{
4939
id: "devops",
5040
category: "Devops",
5141
},
52-
});
53-
54-
await db.categories.create({
55-
data: {
42+
{
5643
id: "projects",
5744
category: "Projects",
5845
},
59-
});
60-
61-
await db.categories.create({
62-
data: {
46+
{
6347
id: "extras",
6448
category: "Extras",
6549
},
66-
});
50+
];
6751

68-
await db.trackCategory.createMany({
69-
data: [
70-
{
71-
trackId: "6SbPPXGkG8QKFOTW9BmL",
72-
categoryId: "web-development",
73-
},
74-
{
75-
trackId: "ABEC",
76-
categoryId: "adv-web-development",
77-
},
78-
{
79-
trackId: "Auth",
80-
categoryId: "web-development",
81-
},
82-
{
83-
trackId: "CI-CD",
84-
categoryId: "devops",
85-
},
86-
{
87-
trackId: "Next-Auth",
88-
categoryId: "adv-web-development",
89-
},
90-
{
91-
trackId: "PayTM2",
92-
categoryId: "projects",
93-
},
94-
{
95-
trackId: "Paytm",
96-
categoryId: "projects",
97-
},
98-
{
99-
trackId: "Redis",
100-
categoryId: "adv-web-development",
101-
},
102-
{
103-
trackId: "YOSAherHkqWXhOdlE4yE",
104-
categoryId: "adv-web-development",
105-
},
106-
{
107-
trackId: "ZSQI8YNE0iL6sT1hJpts",
108-
categoryId: "projects",
109-
},
110-
{
111-
trackId: "blog",
112-
categoryId: "projects",
113-
},
114-
{
115-
trackId: "docker-2",
116-
categoryId: "devops",
117-
},
118-
{
119-
trackId: "docker-easy",
120-
categoryId: "devops",
121-
},
122-
{
123-
trackId: "dsa",
124-
categoryId: "dsa",
125-
},
126-
{
127-
trackId: "dsa2",
128-
categoryId: "dsa",
129-
},
130-
{
131-
trackId: "eooSv7lnuwBO6wl9YA5w",
132-
categoryId: "adv-web-development",
133-
},
134-
{
135-
trackId: "g0AcDSPl74nk45ZZjRdU",
136-
categoryId: "adv-web-development",
137-
},
138-
{
139-
trackId: "gZf9uBBNSbBR7UCqyyqT",
140-
categoryId: "adv-web-development",
141-
},
142-
{
143-
trackId: "monorepo",
144-
categoryId: "adv-web-development",
145-
},
146-
{
147-
trackId: "mw",
148-
categoryId: "web-development",
149-
},
150-
{
151-
trackId: "nextjs-1",
152-
categoryId: "adv-web-development",
153-
},
154-
{
155-
trackId: "nextjs-2",
156-
categoryId: "adv-web-development",
157-
},
158-
{
159-
trackId: "oAjvkeRNZThPMxZf4aX5",
160-
categoryId: "projects",
161-
},
162-
{
163-
trackId: "rendering",
164-
categoryId: "adv-web-development",
165-
},
166-
{
167-
trackId: "senior",
168-
categoryId: "extras",
169-
},
170-
{
171-
trackId: "ts-hard",
172-
categoryId: "adv-web-development",
173-
},
174-
{
175-
trackId: "w5E6PT2t0IyOFM3bZxcM",
176-
categoryId: "adv-web-development",
177-
},
178-
],
52+
const existingCategories = await db.categories.findMany();
53+
54+
categories.forEach((category) => {
55+
if (!existingCategories.find((cat) => cat.id === category.id)) {
56+
db.categories.create({ data: category }).then(() => {
57+
console.log(`Category ${category.id} created`);
58+
}).catch(error => {
59+
console.error(`Error creating category ${category.id}:`, error);
60+
});
61+
}
17962
});
63+
64+
const trackCategories = [
65+
{
66+
trackId: "6SbPPXGkG8QKFOTW9BmL",
67+
categoryId: "web-development",
68+
},
69+
{
70+
trackId: "ABEC",
71+
categoryId: "adv-web-development",
72+
},
73+
{
74+
trackId: "Auth",
75+
categoryId: "web-development",
76+
},
77+
{
78+
trackId: "CI-CD",
79+
categoryId: "devops",
80+
},
81+
{
82+
trackId: "Next-Auth",
83+
categoryId: "adv-web-development",
84+
},
85+
{
86+
trackId: "PayTM2",
87+
categoryId: "projects",
88+
},
89+
{
90+
trackId: "Paytm",
91+
categoryId: "projects",
92+
},
93+
{
94+
trackId: "Redis",
95+
categoryId: "adv-web-development",
96+
},
97+
{
98+
trackId: "YOSAherHkqWXhOdlE4yE",
99+
categoryId: "adv-web-development",
100+
},
101+
{
102+
trackId: "ZSQI8YNE0iL6sT1hJpts",
103+
categoryId: "projects",
104+
},
105+
{
106+
trackId: "blog",
107+
categoryId: "projects",
108+
},
109+
{
110+
trackId: "docker-2",
111+
categoryId: "devops",
112+
},
113+
{
114+
trackId: "docker-easy",
115+
categoryId: "devops",
116+
},
117+
{
118+
trackId: "dsa",
119+
categoryId: "dsa",
120+
},
121+
{
122+
trackId: "dsa2",
123+
categoryId: "dsa",
124+
},
125+
{
126+
trackId: "eooSv7lnuwBO6wl9YA5w",
127+
categoryId: "adv-web-development",
128+
},
129+
{
130+
trackId: "g0AcDSPl74nk45ZZjRdU",
131+
categoryId: "adv-web-development",
132+
},
133+
{
134+
trackId: "gZf9uBBNSbBR7UCqyyqT",
135+
categoryId: "adv-web-development",
136+
},
137+
{
138+
trackId: "monorepo",
139+
categoryId: "adv-web-development",
140+
},
141+
{
142+
trackId: "mw",
143+
categoryId: "web-development",
144+
},
145+
{
146+
trackId: "nextjs-1",
147+
categoryId: "adv-web-development",
148+
},
149+
{
150+
trackId: "nextjs-2",
151+
categoryId: "adv-web-development",
152+
},
153+
{
154+
trackId: "oAjvkeRNZThPMxZf4aX5",
155+
categoryId: "projects",
156+
},
157+
{
158+
trackId: "rendering",
159+
categoryId: "adv-web-development",
160+
},
161+
{
162+
trackId: "senior",
163+
categoryId: "extras",
164+
},
165+
{
166+
trackId: "ts-hard",
167+
categoryId: "adv-web-development",
168+
},
169+
{
170+
trackId: "w5E6PT2t0IyOFM3bZxcM",
171+
categoryId: "adv-web-development",
172+
},
173+
];
174+
175+
const existingTrackCategories = await db.trackCategory.findMany();
176+
177+
const insertableTrackCategories = trackCategories.filter(tc =>
178+
!existingTrackCategories.find(existing => existing.trackId === tc.trackId && existing.categoryId === tc.categoryId),
179+
);
180+
181+
if (insertableTrackCategories.length === 0) {
182+
await db.trackCategory.createMany({ data: insertableTrackCategories });
183+
}
180184
}
181185

182186
main()

0 commit comments

Comments
 (0)