diff --git a/.env.example b/.env.example index b932ddb..2c81304 100644 --- a/.env.example +++ b/.env.example @@ -1,8 +1,13 @@ # 数据库连接字符串 -DATABASE_URL= +DATABASE_HOST=localhost +DATABASE_PORT=23306 +DATABASE_USERNAME=root +DATABASE_PASSWORD=root +DATABASE_NAME=app # Redis 连接字符串 -REDIS_URL= +REDIS_HOST=localhost +REDIS_PORT=26379 # 京东网关配置 JD_BASE=https://smart.jdbox.xyz:58001 diff --git a/docker-compose.yaml b/docker-compose.yaml index b8aa4a2..1bd6d8a 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -8,13 +8,13 @@ services: MYSQL_ROOT_PASSWORD: root MYSQL_DATABASE: app ports: - - "23306:3306" + - "${DATABASE_PORT}:3306" volumes: - .volumes/mysql:/var/lib/mysql redis: image: redis:7 ports: - - "26379:6379" + - "${REDIS_PORT}:6379" volumes: - .volumes/redis:/data \ No newline at end of file diff --git a/src/lib/drizzle/index.ts b/src/lib/drizzle/index.ts index 2daa81e..52d51d1 100644 --- a/src/lib/drizzle/index.ts +++ b/src/lib/drizzle/index.ts @@ -4,10 +4,13 @@ import * as schema from './schema' const globalForDrizzle = globalThis as { drizzle?: MySql2Database } +const { DATABASE_HOST, DATABASE_PORT, DATABASE_USERNAME, DATABASE_PASSWORD, DATABASE_NAME } = process.env const proxy = new Proxy({} as MySql2Database, { get(_, prop) { if (!globalForDrizzle.drizzle) { - globalForDrizzle.drizzle = client(process.env.DATABASE_URL!, { mode: 'default', schema }) + globalForDrizzle.drizzle = client( + `mysql://${DATABASE_USERNAME}:${DATABASE_PASSWORD}@${DATABASE_HOST}:${DATABASE_PORT}/${DATABASE_NAME}`, + { mode: 'default', schema }) } const drizzle = globalForDrizzle.drizzle diff --git a/src/lib/redis.ts b/src/lib/redis.ts index 02a1c18..a8a0a8a 100644 --- a/src/lib/redis.ts +++ b/src/lib/redis.ts @@ -3,8 +3,9 @@ import { createClient, type RedisClientType } from 'redis' const globalForRedis = globalThis as { redis?: RedisClientType } +const { REDIS_HOST, REDIS_PORT } = process.env if (!globalForRedis.redis) { - globalForRedis.redis = createClient({ url: process.env.REDIS_URL }) + globalForRedis.redis = createClient({ url: `redis://${REDIS_HOST}:${REDIS_PORT}` }) } const redis = globalForRedis.redis