Skip to content

データベースアクセス(sqlc)

ディレクトリの役割

ディレクトリ役割
backend/db/schema/*.sql手書きのDDL。ファイル単位の連番マイグレーション(001_river.sql005_tags.sql)。docker-entrypoint-initdb.d経由でPostgresに適用される。マイグレーションツールなし — スキーマ変更は新しい連番.sqlファイルを追加する形で行う。
backend/db/queries/*.sqlsqlcが読む手書きSQL(tags.sql, uploads.sql, works.sql)。
backend/db/gen/sqlcがqueries/+schema/から生成するGoコード。絶対に手編集しない
backend/db/query/空の迷子ディレクトリ。sqlc.ymlが参照するのはqueries(複数形)であり、こちらは未使用。

コード生成

Terminal window
cd backend/db && sqlc generate

クエリを変更したら、.sqlクエリファイルを編集してから必ず再生成すること。

schema/の内容(連番順)

  1. 001_river.sql — River公式スキーマ(river_job, river_leader, river_queue)。通常はriver migrate-upで自動生成されるものだが、開発初期のため素のSQLとして管理。
  2. 002_uploads.sqluploadsテーブル(upload_status enum: uploading/transcoding/done/failed)。
  3. 003_works.sqlworksテーブル(work_status enum: draft/publish_pending/published/deleted)。
  4. 004_uploads_work_id.sqluploads.work_idカラム追加(works.upload_idとの双方向FK)。
  5. 005_tags.sqltagswork_tags(正規化タグ用の中間テーブル)。

テーブル定義の詳細はworks-and-uploadsを参照。