サーバーより新しいマイグレーションがローカルに存在する場合、 リストア後にmigrateを実行しないと500エラーになるバグを修正。 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2.3 KiB
2.3 KiB
ローカルテスト環境(Ubuntu PC)
本番同等の環境をローカルで起動し、サーバーのデータで動作確認するための手順。
構成
| ファイル | 用途 |
|---|---|
docker-compose.local.yml |
本番用Dockerfileを使用、Traefikなし、ポート直接公開 |
deploy_local.sh |
ローカル環境のビルド・起動 |
sync_db.sh |
サーバーのDBダンプをローカルに取り込む |
.env |
本番と同じ環境変数(git管理外) |
アクセス先:
- フロントエンド: http://localhost:3000
- バックエンドAPI: http://localhost:8000/api/
初回セットアップ
1. .env を作成
cp .env.production.example .env
# .env に本番と同じ値を設定する
2. ローカル環境を起動
bash deploy_local.sh
ビルド(初回は10〜15分)→ 起動 → マイグレーションが自動実行される。
3. サーバーのDBを同期
サーバー側で実行(keinasystemユーザーで):
docker exec keinasystem_db pg_dump -U keinasystem keinasystem > /tmp/keinasystem_dump.sql
ローカル側で実行:
bash sync_db.sh
sync_db.shはリストア後に自動でマイグレーションを実行する。サーバーより新しいマイグレーションがローカルにある場合でも正しく動作する。
2回目以降の起動
# 停止中の場合は起動
docker compose -f docker-compose.local.yml up -d
# 停止
docker compose -f docker-compose.local.yml down
コードを変更した場合は再ビルドが必要:
bash deploy_local.sh
DBの再同期
サーバーのデータをローカルに反映したい時。
サーバー側(keinasystemユーザーで):
docker exec keinasystem_db pg_dump -U keinasystem keinasystem > /tmp/keinasystem_dump.sql
ローカル側:
bash sync_db.sh
注意: ローカルのDBデータは上書きされる。ローカルで加えた変更は失われる。
注意事項
.envは gitignore 対象(コミットしない)- ローカルDBは
postgres_data_localボリュームに保存(本番のpostgres_dataとは別) sync_db.shは SSH設定keinafarm(~/.ssh/config)を使用