MySQL 운영 절차
Guide Center은 MySQL 8 이상 또는 호환 MariaDB/TiDB를 사용하며 애플리케이션은 AIVEN_DATABASE_URL을 우선, 없으면 DATABASE_URL을 사용한다. 온프렘 전환 시 연결 문자열만 교체하고 Drizzle 스키마와 애플리케이션 코드는 유지한다.
운영 계정은 애플리케이션 데이터베이스에 대해 SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, INDEX 권한이 필요하다. 마이그레이션 전용 계정과 런타임 계정을 분리할 수 있으며, 런타임 계정에는 CREATE와 ALTER를 제외하는 것을 권장한다.
Aiven 연결은 TLS를 포함한 연결 문자열을 사용한다. 온프렘 MySQL도 가능한 경우 TLS를 강제하고, 방화벽은 배포 플랫폼의 outbound IP 또는 사설 네트워크 대역만 허용한다. 자격 증명은 배포 플랫폼의 secret 환경변수에만 저장하며 저장소에는 절대 커밋하지 않는다.
마이그레이션은 다음 순서로 수행한다.
pnpm drizzle-kit generate
생성된 drizzle/*.sql 검토
검증 DB에 적용
pnpm check && pnpm test && pnpm build
운영 DB에 동일 SQL 적용현재 적용된 핵심 테이블은 users, directory_departments, manual_systems, manual_nodes, manual_pages, manual_attachments, portal_locales, manual_system_translations, manual_node_translations, manual_page_translations이며, 파일 본문과 자산은 Cloudflare R2에 저장하고 MySQL에는 메타데이터와 접근 정책을 저장한다.