Skip to content

PostgreSQL 호환성 전수검사 ​

결론 ​

DocumentLibrary는 현재 MySQL 전용 저장소다. PostgreSQL driver, PostgreSQL schema, PostgreSQL migration이 존재하지 않으므로 PostgreSQL DATABASE_URL을 그대로 주입해 배포할 수 없다.

확인 결과 ​

영역현재 상태판정
DB drivermysql2/promise만 사용PostgreSQL 미지원
Drizzle schema모든 테이블이 mysqlTable·MySQL column builder 사용PostgreSQL 미지원
Drizzle configdialect: "mysql" 고정PostgreSQL migration 생성 불가
migrationdrizzle/migrations 10개, MySQL DDLPostgreSQL에서 실행 불가
transactionbeginTransaction·PoolConnection 사용PostgreSQL adapter로 교체 필요
upsert/resultMySQL pool SQL 중심PostgreSQL query/result 정규화 필요
deployment별도 PostgreSQL 분기 없음DATABASE_DIALECT 도입 필요

주요 MySQL 전용 구문 ​

스키마와 migration에 AUTO_INCREMENT, ON UPDATE CURRENT_TIMESTAMP, MySQL 외래키·인덱스 문법, backtick 식별자, MySQL JSON 타입이 포함되어 있다. server/db.ts는 mysql.createPool()과 connection.beginTransaction()에 고정되어 있고, portal state 저장도 ON DUPLICATE KEY UPDATE를 사용한다.

운영 권고 ​

DocumentLibrary를 PostgreSQL로 운영하려면 단순 환경변수 변경이 아니라 PostgreSQL schema 파일, PostgreSQL migration 폴더, pg pool, transaction adapter, JSON/date/boolean 변환, upsert 분기, 테스트 fixture를 함께 도입해야 한다. 그 전까지는 DocumentLibrary에는 MySQL 전용 DATABASE_URL만 사용해야 하며, ProcessCenter·DirectoryService의 PostgreSQL URL을 공유하면 안 된다.

이번 점검에서는 동작 계약을 깨뜨릴 수 있는 부분을 임의로 반쪽 마이그레이션하지 않고, 저장소가 PostgreSQL을 지원하지 않는 상태를 명확히 기록했다.