Add local production test environment setup
- docker-compose.local.yml: 本番Dockerfile使用・Traefikなし・ポート直接公開 - deploy_local.sh: ローカル環境のビルド・起動スクリプト - sync_db.sh: サーバーDBダンプをローカルに取り込むスクリプト - document/20_ローカルテスト環境.md: 手順ドキュメント Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
46
sync_db.sh
Executable file
46
sync_db.sh
Executable file
@@ -0,0 +1,46 @@
|
||||
#!/bin/bash
|
||||
# サーバーのDBをローカルに同期するスクリプト
|
||||
#
|
||||
# 事前準備(サーバー側でkeinasystemユーザーとして実行):
|
||||
# docker exec keinasystem_db pg_dump -U keinasystem keinasystem > /tmp/keinasystem_dump.sql
|
||||
#
|
||||
# 使用: bash sync_db.sh
|
||||
set -e
|
||||
|
||||
REMOTE_HOST="keinafarm"
|
||||
LOCAL_DUMP="/tmp/keinasystem_dump.sql"
|
||||
|
||||
echo "=== DBSync: サーバー → ローカル ==="
|
||||
|
||||
# 1. サーバーからdumpファイルをscpで取得
|
||||
echo "[1/4] サーバーからダンプファイルを取得..."
|
||||
scp "$REMOTE_HOST:/tmp/keinasystem_dump.sql" "$LOCAL_DUMP"
|
||||
echo " → ダンプ取得完了: $LOCAL_DUMP ($(du -sh $LOCAL_DUMP | cut -f1))"
|
||||
|
||||
# 2. ローカルのDBコンテナが起動しているか確認
|
||||
echo "[2/4] ローカルDBコンテナを確認..."
|
||||
if ! docker compose -f docker-compose.local.yml ps db 2>/dev/null | grep -q "running"; then
|
||||
echo " → ローカルDBコンテナが起動していません。起動します..."
|
||||
docker compose -f docker-compose.local.yml up -d db
|
||||
echo " → DB起動待機中..."
|
||||
sleep 10
|
||||
fi
|
||||
|
||||
# 3. 既存データをドロップして復元
|
||||
echo "[3/4] ローカルDBにリストア(既存データをリセット)..."
|
||||
# DBを一旦削除して再作成してからリストア
|
||||
docker compose -f docker-compose.local.yml exec -T db \
|
||||
psql -U keinasystem -d postgres -c "DROP DATABASE IF EXISTS keinasystem;" --quiet
|
||||
docker compose -f docker-compose.local.yml exec -T db \
|
||||
psql -U keinasystem -d postgres -c "CREATE DATABASE keinasystem OWNER keinasystem;" --quiet
|
||||
cat "$LOCAL_DUMP" | docker compose -f docker-compose.local.yml exec -T db \
|
||||
psql -U keinasystem -d keinasystem --quiet
|
||||
echo " → リストア完了"
|
||||
|
||||
# 4. クリーンアップ
|
||||
echo "[4/4] 一時ファイル削除..."
|
||||
rm -f "$LOCAL_DUMP"
|
||||
|
||||
echo ""
|
||||
echo "=== 同期完了 ==="
|
||||
echo "ローカルでの起動: bash deploy_local.sh"
|
||||
Reference in New Issue
Block a user