chore(db): add local PostgreSQL Compose setup
This commit is contained in:
@@ -0,0 +1 @@
|
|||||||
|
DATABASE_URL=postgresql://postgres:Aa110011@localhost:5432/fluxent
|
||||||
@@ -30,6 +30,7 @@ pnpm-debug.log*
|
|||||||
|
|
||||||
# env files (can opt-in for committing if needed)
|
# env files (can opt-in for committing if needed)
|
||||||
.env*
|
.env*
|
||||||
|
!.env.example
|
||||||
|
|
||||||
# typescript
|
# typescript
|
||||||
*.tsbuildinfo
|
*.tsbuildinfo
|
||||||
|
|||||||
@@ -1,21 +1,29 @@
|
|||||||
# Next.js template
|
# Fluxent Web
|
||||||
|
|
||||||
This is a Next.js template with shadcn/ui.
|
## 本地开发
|
||||||
|
|
||||||
## Adding components
|
需要已安装 Docker 和 pnpm。在项目目录执行:
|
||||||
|
|
||||||
To add components to your app, run the following command:
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
npx shadcn@latest add button
|
pnpm install
|
||||||
|
test -f .env.local || cp .env.example .env.local
|
||||||
|
docker compose up -d
|
||||||
|
docker compose ps
|
||||||
|
pnpm db:logs
|
||||||
|
pnpm drizzle-kit push --force
|
||||||
```
|
```
|
||||||
|
|
||||||
This will place the ui components in the `components` directory.
|
数据库镜像通过 `registry1.fw.ac.cn/docker.io/` 代理拉取最新的
|
||||||
|
PostgreSQL Alpine 版本。
|
||||||
|
|
||||||
## Using components
|
`pnpm db:logs` 会持续显示数据库日志,可按 `Ctrl-C` 返回终端。数据库停止后仍会保留命名卷中的数据:
|
||||||
|
|
||||||
To use the components in your app, import them as follows:
|
```bash
|
||||||
|
pnpm db:down
|
||||||
```tsx
|
```
|
||||||
import { Button } from "@/components/ui/button";
|
|
||||||
|
如需有意删除数据库及全部数据,执行以下命令。此操作不可恢复:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker compose down -v
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -0,0 +1,25 @@
|
|||||||
|
services:
|
||||||
|
db:
|
||||||
|
image: registry1.fw.ac.cn/docker.io/postgres:alpine
|
||||||
|
restart: unless-stopped
|
||||||
|
environment:
|
||||||
|
POSTGRES_USER: postgres
|
||||||
|
POSTGRES_PASSWORD: Aa110011
|
||||||
|
POSTGRES_DB: fluxent
|
||||||
|
ports:
|
||||||
|
- "127.0.0.1:5432:5432"
|
||||||
|
volumes:
|
||||||
|
- fluxent-postgres-data:/var/lib/postgresql
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
[
|
||||||
|
"CMD-SHELL",
|
||||||
|
'pg_isready -U "$${POSTGRES_USER}" -d "$${POSTGRES_DB}" -h 127.0.0.1 -p 5432',
|
||||||
|
]
|
||||||
|
interval: 5s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 10
|
||||||
|
start_period: 10s
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
fluxent-postgres-data:
|
||||||
@@ -7,6 +7,9 @@
|
|||||||
"dev": "next dev",
|
"dev": "next dev",
|
||||||
"build": "next build",
|
"build": "next build",
|
||||||
"start": "next start",
|
"start": "next start",
|
||||||
|
"db:up": "docker compose up -d --wait",
|
||||||
|
"db:down": "docker compose down",
|
||||||
|
"db:logs": "docker compose logs -f db",
|
||||||
"lint": "eslint",
|
"lint": "eslint",
|
||||||
"format": "prettier --write \"**/*.{ts,tsx}\"",
|
"format": "prettier --write \"**/*.{ts,tsx}\"",
|
||||||
"typecheck": "tsc --noEmit"
|
"typecheck": "tsc --noEmit"
|
||||||
|
|||||||
Reference in New Issue
Block a user