DB の土台を追加(ステップ2) #5

Merged
kazu634 merged 1 commits from db-foundation into main 2026-10-03 18:23:11 +09:00
Owner

概要

ステップ2: DB の土台を追加する。あわせて yt-dlp の進捗読み取りの実機調査(ステップ2a)の結果を PROJECT.md に記録する。

  • internal/store/migrations/001_initial.sql: download_jobs(episode_id 一意、状態・段階別進捗・失敗分類・保存先、CHECK 制約、索引)と subscriptions
  • internal/store/migrate.go: 埋め込み SQL を schema_migrations で管理し、pg_advisory_lock で同時適用を直列化
  • internal/store/store.go: Enqueue / Retry / ClaimNext(FOR UPDATE SKIP LOCKED)/ UpdateProgress / Complete / Fail / Cancel / RequeueStale、一覧・状態一括取得、番組登録の操作
  • テストは embedded-postgres で Postgres 17 を起動して実行
  • Dockerfile: go.sum の COPY とモジュール取得の層
  • PROJECT.md: DB 方式(NAS 上の tver 専用 Postgres 17)、テスト方式、yt-dlp 調査結果(pycryptodomex 必須、段階別進捗、after_move、ffprobe、中断再開、失敗文言)、worker の方針、確かめ方

web・worker への組み込みと画面は範囲外(ステップ3以降)。

確認

  • go test -count=1 ./... → 53件成功・0失敗(QA が索引の実在、SKIP LOCKED、一覧・状態遷移・RequeueStale 境界などを追加)
  • go vet ./... → 指摘0件
  • QA が SKIP LOCKED を外した仮実装でテストが失敗することを確認
  • dockage VM で docker build と /healthz 200 を確認(検証用リソースは削除済み)

🤖 Generated with Claude Code

https://claude.ai/code/session_01BcuBr9DyfcqZY8xFQsY5Di

## 概要 ステップ2: DB の土台を追加する。あわせて yt-dlp の進捗読み取りの実機調査(ステップ2a)の結果を PROJECT.md に記録する。 - `internal/store/migrations/001_initial.sql`: `download_jobs`(`episode_id` 一意、状態・段階別進捗・失敗分類・保存先、CHECK 制約、索引)と `subscriptions` - `internal/store/migrate.go`: 埋め込み SQL を `schema_migrations` で管理し、`pg_advisory_lock` で同時適用を直列化 - `internal/store/store.go`: Enqueue / Retry / ClaimNext(`FOR UPDATE SKIP LOCKED`)/ UpdateProgress / Complete / Fail / Cancel / RequeueStale、一覧・状態一括取得、番組登録の操作 - テストは embedded-postgres で Postgres 17 を起動して実行 - `Dockerfile`: `go.sum` の COPY とモジュール取得の層 - `PROJECT.md`: DB 方式(NAS 上の tver 専用 Postgres 17)、テスト方式、yt-dlp 調査結果(pycryptodomex 必須、段階別進捗、after_move、ffprobe、中断再開、失敗文言)、worker の方針、確かめ方 web・worker への組み込みと画面は範囲外(ステップ3以降)。 ## 確認 - `go test -count=1 ./...` → 53件成功・0失敗(QA が索引の実在、SKIP LOCKED、一覧・状態遷移・RequeueStale 境界などを追加) - `go vet ./...` → 指摘0件 - QA が SKIP LOCKED を外した仮実装でテストが失敗することを確認 - dockage VM で `docker build` と `/healthz` 200 を確認(検証用リソースは削除済み) 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01BcuBr9DyfcqZY8xFQsY5Di
kazu634 added 1 commit 2026-10-03 18:08:28 +09:00
kazu634 merged commit a71b915c81 into main 2026-10-03 18:23:11 +09:00
kazu634 deleted branch db-foundation 2026-10-03 18:23:12 +09:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: kazu634/tver#5