データベースアクセス(sqlc)
ディレクトリの役割
| ディレクトリ | 役割 |
|---|---|
backend/db/schema/*.sql | 手書きのDDL。ファイル単位の連番マイグレーション(001_river.sql〜005_tags.sql)。docker-entrypoint-initdb.d経由でPostgresに適用される。マイグレーションツールなし — スキーマ変更は新しい連番.sqlファイルを追加する形で行う。 |
backend/db/queries/*.sql | sqlcが読む手書きSQL(tags.sql, uploads.sql, works.sql)。 |
backend/db/gen/ | sqlcがqueries/+schema/から生成するGoコード。絶対に手編集しない。 |
backend/db/query/ | 空の迷子ディレクトリ。sqlc.ymlが参照するのはqueries(複数形)であり、こちらは未使用。 |
コード生成
cd backend/db && sqlc generateクエリを変更したら、.sqlクエリファイルを編集してから必ず再生成すること。
schema/の内容(連番順)
001_river.sql— River公式スキーマ(river_job,river_leader,river_queue)。通常はriver migrate-upで自動生成されるものだが、開発初期のため素のSQLとして管理。002_uploads.sql—uploadsテーブル(upload_statusenum: uploading/transcoding/done/failed)。003_works.sql—worksテーブル(work_statusenum: draft/publish_pending/published/deleted)。004_uploads_work_id.sql—uploads.work_idカラム追加(works.upload_idとの双方向FK)。005_tags.sql—tags・work_tags(正規化タグ用の中間テーブル)。
テーブル定義の詳細はworks-and-uploadsを参照。