mcpField
Z
zeabur-migration

zeabur-migration

github.com/zeaburクラウド・DevOps39174 回インストール7 週間前に更新
リポジトリ

zeabur-migration について

zeabur-migration は、Zeabur のデプロイでデータベース移行が停止する問題を調査するスキルです。アプリのデプロイや移行設定向けに、API 起動時に移行を実行する方法と、独立したマイグレーターサービスを設ける方法を示します。

主な機能

  1. 01移行待機ループの特定
  2. 02API 起動時に移行を実行
  3. 03独立したマイグレーターサービスの設定
  4. 04移行ログでエラーを確認

活用シーン

  1. 01移行が待機状態のまま進まない問題の解決
  2. 02API 起動処理に移行手順を追加
  3. 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 スキルを使用してください。

コメント