Skip to content

Commit 9bfba85

Browse files
committed
feat: Add shared types and implement basic cms backend
1 parent 28a11cd commit 9bfba85

33 files changed

Lines changed: 1093 additions & 18 deletions

.prettierrc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"printWidth": 120,
2+
"printWidth": 80,
33
"tabWidth": 2,
44
"useTabs": false,
55
"semi": true,

README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,7 @@
11
# the-codec
2+
3+
Codex 복수 int id
4+
5+
Index 단수 int id
6+
7+
Verse 트리구조 UUID

backend/cms/.env.example

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# General
2+
PORT=
3+
4+
5+
# DB
6+
POSTGRES_PORT=
7+
POSTGRES_DB=
8+
POSTGRES_USER=
9+
POSTGRES_PASSWORD=
10+
POSTGRES_DB_URL=postgres://<user>:<password>@localhost:<port>/<database>

backend/cms/README.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,25 @@
11
# CMS
2+
3+
## Development
4+
5+
```bash
6+
# Run database in docker
7+
# Run only once when database is not running
8+
yarn db:run
9+
10+
# dev server
11+
yarn cms dev
12+
```
13+
14+
## DB
15+
16+
```bash
17+
# Auto-generate migration file
18+
yarn cms db:generate --name={migration_name}
19+
20+
# Generate custom migration file (write SQL statements as you want)
21+
yarn cms db:generate --custom --name={custom_migration_name}
22+
23+
# Apply new migration files
24+
yarn cms db:migrate
25+
```

backend/cms/docker-compose.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
services:
2+
postgres:
3+
image: postgres:17
4+
container_name: postgres_cms
5+
restart: always
6+
ports:
7+
- ${POSTGRES_PORT}:5432
8+
environment:
9+
POSTGRES_DB: ${POSTGRES_DB}
10+
POSTGRES_USER: ${POSTGRES_USER}
11+
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}

backend/cms/drizzle.config.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import { defineConfig } from "drizzle-kit";
2+
3+
import { env } from "./src/env";
4+
5+
export default defineConfig({
6+
out: "./drizzle",
7+
schema: "./src/db/db.schema.ts",
8+
dialect: "postgresql",
9+
casing: "snake_case",
10+
dbCredentials: {
11+
url: env.POSTGRES_DB_URL,
12+
},
13+
});
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"version": "7",
3+
"dialect": "postgresql",
4+
"entries": []
5+
}
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
DROP TABLE "indexes";
2+
DROP TABLE "users";

backend/cms/package.json

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,28 @@
55
"dev": "tsx watch src/index.ts",
66
"build": "tsc",
77
"start": "node dist/index.js",
8+
"db:run": "docker compose up -d",
9+
"db:generate": "drizzle-kit generate",
10+
"db:migrate": "drizzle-kit migrate",
11+
"db:studio": "drizzle-kit studio",
812
"format": "prettier --write .",
913
"lint:check": "eslint .",
1014
"lint:fix": "eslint --fix ."
1115
},
1216
"dependencies": {
1317
"@hono/node-server": "^1.14.4",
14-
"hono": "^4.8.3"
18+
"dotenv": "^17.0.0",
19+
"drizzle-orm": "^0.44.2",
20+
"hono": "^4.8.3",
21+
"pg": "^8.16.3",
22+
"zod": "^3.25.67"
1523
},
1624
"devDependencies": {
1725
"@types/node": "^20.11.17",
26+
"@types/pg": "^8",
27+
"drizzle-kit": "^0.31.4",
1828
"tsx": "^4.7.1",
29+
"types": "workspace:^",
1930
"typescript": "^5"
2031
}
2132
}

backend/cms/src/core/repository.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import type { DbType } from "../db/db.types";
2+
3+
class Repository {
4+
constructor(readonly db: DbType) {}
5+
}
6+
7+
export { Repository };

0 commit comments

Comments
 (0)