refactor(env): user 테이블명을 PG_TABLE로 통일(TABLE 레거시 호환 유지)
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -36,7 +36,7 @@ python3 -m http.server 8000
|
|||||||
psql -h "$PG_DB_HOST" -p "$PG_DB_PORT" -U "$PG_DB_USER" -d "$PG_DB_NAME" -f db/schema.sql
|
psql -h "$PG_DB_HOST" -p "$PG_DB_PORT" -U "$PG_DB_USER" -d "$PG_DB_NAME" -f db/schema.sql
|
||||||
```
|
```
|
||||||
|
|
||||||
`.env`의 PostgreSQL 변수는 **`PG_DB_HOST`**, **`PG_DB_PORT`**, **`PG_DB_NAME`**, **`PG_DB_USER`**, **`PG_DB_PASSWORD`** 입니다. (선택: `PG_DB_SSLMODE`, `PG_DB_CONNECT_TIMEOUT`). 배포 마이그레이션 동안 레거시 `DB_*` 이름도 같은 값으로 한동안 읽힐 수 있습니다.
|
`.env`의 PostgreSQL 변수는 **`PG_DB_HOST`**, **`PG_DB_PORT`**, **`PG_DB_NAME`**, **`PG_DB_USER`**, **`PG_DB_PASSWORD`** 입니다. (선택: `PG_DB_SSLMODE`, `PG_DB_CONNECT_TIMEOUT`.) 사용자 upsert 대상 테이블 이름은 **`PG_TABLE`**(기본 `ncue_user`). 배포 마이그레이션 동안 레거시 `DB_*` / `TABLE` 이름도 한동안 읽힐 수 있습니다.
|
||||||
|
|
||||||
### 2) 실행 방법 A: (로컬/간단) venv로 실행
|
### 2) 실행 방법 A: (로컬/간단) venv로 실행
|
||||||
|
|
||||||
|
|||||||
10
flask_app.py
10
flask_app.py
@@ -64,6 +64,14 @@ def _env_pg(name_primary: str, name_legacy: str, default: str = "") -> str:
|
|||||||
return str(env(name_legacy, default) or "").strip()
|
return str(env(name_legacy, default) or "").strip()
|
||||||
|
|
||||||
|
|
||||||
|
def _env_pg_table() -> str:
|
||||||
|
"""User table identifier: PG_TABLE, else legacy TABLE, default ncue_user."""
|
||||||
|
v = env("PG_TABLE", "").strip()
|
||||||
|
if v:
|
||||||
|
return v
|
||||||
|
return str(env("TABLE", "ncue_user") or "").strip() or "ncue_user"
|
||||||
|
|
||||||
|
|
||||||
DB_HOST = _env_pg("PG_DB_HOST", "DB_HOST").strip()
|
DB_HOST = _env_pg("PG_DB_HOST", "DB_HOST").strip()
|
||||||
DB_PORT = int(_env_pg("PG_DB_PORT", "DB_PORT", "5432") or "5432")
|
DB_PORT = int(_env_pg("PG_DB_PORT", "DB_PORT", "5432") or "5432")
|
||||||
DB_NAME = _env_pg("PG_DB_NAME", "DB_NAME").strip()
|
DB_NAME = _env_pg("PG_DB_NAME", "DB_NAME").strip()
|
||||||
@@ -72,7 +80,7 @@ DB_PASSWORD = _env_pg("PG_DB_PASSWORD", "DB_PASSWORD").strip()
|
|||||||
DB_SSLMODE = _env_pg("PG_DB_SSLMODE", "DB_SSLMODE", "prefer").strip() or "prefer"
|
DB_SSLMODE = _env_pg("PG_DB_SSLMODE", "DB_SSLMODE", "prefer").strip() or "prefer"
|
||||||
DB_CONNECT_TIMEOUT = int(_env_pg("PG_DB_CONNECT_TIMEOUT", "DB_CONNECT_TIMEOUT", "5") or "5")
|
DB_CONNECT_TIMEOUT = int(_env_pg("PG_DB_CONNECT_TIMEOUT", "DB_CONNECT_TIMEOUT", "5") or "5")
|
||||||
|
|
||||||
TABLE = safe_ident(env("TABLE", "ncue_user") or "ncue_user")
|
TABLE = safe_ident(_env_pg_table())
|
||||||
CONFIG_TABLE = "ncue_app_config"
|
CONFIG_TABLE = "ncue_app_config"
|
||||||
CONFIG_TOKEN = env("CONFIG_TOKEN", "").strip()
|
CONFIG_TOKEN = env("CONFIG_TOKEN", "").strip()
|
||||||
ADMIN_EMAILS = set(parse_email_csv(env("ADMIN_EMAILS", "")))
|
ADMIN_EMAILS = set(parse_email_csv(env("ADMIN_EMAILS", "")))
|
||||||
|
|||||||
@@ -69,7 +69,14 @@ const DB_PORT = Number(pgEnv("PG_DB_PORT", "DB_PORT", "5432")) || 5432;
|
|||||||
const DB_NAME = mustPg("PG_DB_NAME", "DB_NAME");
|
const DB_NAME = mustPg("PG_DB_NAME", "DB_NAME");
|
||||||
const DB_USER = mustPg("PG_DB_USER", "DB_USER");
|
const DB_USER = mustPg("PG_DB_USER", "DB_USER");
|
||||||
const DB_PASSWORD = mustPg("PG_DB_PASSWORD", "DB_PASSWORD");
|
const DB_PASSWORD = mustPg("PG_DB_PASSWORD", "DB_PASSWORD");
|
||||||
const TABLE = safeIdent(env("TABLE", "ncue_user") || "ncue_user");
|
|
||||||
|
function pgTableName() {
|
||||||
|
const v = String(env("PG_TABLE", "")).trim();
|
||||||
|
if (v) return v;
|
||||||
|
return String(env("TABLE", "ncue_user")).trim() || "ncue_user";
|
||||||
|
}
|
||||||
|
|
||||||
|
const TABLE = safeIdent(pgTableName());
|
||||||
const CONFIG_TABLE = "ncue_app_config";
|
const CONFIG_TABLE = "ncue_app_config";
|
||||||
const CONFIG_TOKEN = env("CONFIG_TOKEN", "").trim();
|
const CONFIG_TOKEN = env("CONFIG_TOKEN", "").trim();
|
||||||
const ADMIN_EMAILS = new Set(parseEmailCsv(env("ADMIN_EMAILS", "")));
|
const ADMIN_EMAILS = new Set(parseEmailCsv(env("ADMIN_EMAILS", "")));
|
||||||
|
|||||||
Reference in New Issue
Block a user