zeabur-migration について
zeabur-migration は、Zeabur のデプロイでデータベース移行が停止する問題を調査するスキルです。アプリのデプロイや移行設定向けに、API 起動時に移行を実行する方法と、独立したマイグレーターサービスを設ける方法を示します。
主な機能
- 01移行待機ループの特定
- 02API 起動時に移行を実行
- 03独立したマイグレーターサービスの設定
- 04移行ログでエラーを確認
活用シーン
- 01移行が待機状態のまま進まない問題の解決
- 02API 起動処理に移行手順を追加
- 03専用のデータベースマイグレーターをデプロイ
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ zeabur/ agent-skills --skill zeabur-migrationインストール後、Claude Code で/zeabur-migrationを入力して読み込まれたか確認します。
詳細
Zeabur のマイグレーションに関する問題
Zeabur CLI の実行には、常に
npx zeabur@latestを使用してください。zeaburを直接実行したり、ほかのインストール方法を使用したりしないでください。npxを利用できない場合は、まず Node.js をインストールしてください。
症状
Waiting for database migrations to complete...
Waiting for database migrations to complete...
(repeating forever)
原因
アプリはマイグレーションが別途実行されることを想定していますが、マイグレーターサービスが存在しません。
解決方法
オプション A:API の起動時にマイグレーションを追加する(テンプレート YAML を編集 — 参考として zeabur-template スキルを使用してください)
# In api service — command MUST be inside source
spec:
source:
image: myapp:latest
command:
- /bin/sh
- -c
- "python manage.py wait_for_db && python manage.py migrate && exec ./entrypoint.sh"
オプション B:マイグレーターサービスを追加する
- name: migrator
spec:
source:
image: same-backend-image
command:
- ./bin/docker-entrypoint-migrator.sh
env:
DATABASE_URL: ...
オプション A のほうが簡単です — マイグレーションは API の起動時に実行され、冪等性があります(繰り返し実行しても安全です)。
マイグレーションログでエラーを確認するには、zeabur-deployment-logs スキルを使用してください。問題がマイグレーション固有ではなく、依存関係の準備が整う前にサービスが起動することに関する場合は、代わりに zeabur-startup-order スキルを使用してください。
コメント
Markdown 対応