Appearance
データベース同期スクリプト - 安全な実行ガイド
⚠️ 重要な警告
このスクリプトを実行すると、ローカル環境の既存データベースが本番環境のデータで完全に上書きされます。
重要なローカルデータがある場合は、必ず事前にバックアップを取ってください。
段階的な実行方法
方法1: 段階的実行スクリプトを使用(推奨)
bash
# プロジェクトルートから実行
./scripts/sync-db-step-by-step.shこのスクリプトは、各ステップを確認しながら実行できます:
- 設定ファイルの読み込み - 設定値の確認
- 設定の検証 - 必須変数が設定されているか確認
- SSH接続の確認 - 本番サーバーへの接続テスト
- データベースダンプの取得 - 本番環境からダンプを取得(まだローカルDBは変更されない)
- データベースのインポート - ローカルDBを上書き(このステップでデータが失われます)
各ステップで確認プロンプトが表示されるため、安全に実行できます。
方法2: 手動で各ステップを実行
bash
# プロジェクトルートに移動
cd /path/to/project
# スクリプトの関数を読み込み
source scripts/sync-db-from-production.sh
# ステップ1: 設定ファイルの読み込み
load_config
# ステップ2: 設定の検証
validate_config
# ステップ3: SSH接続の確認
check_ssh_connection
# ステップ4: データベースダンプの取得(まだローカルDBは変更されない)
fetch_dump
# ステップ5: データベースのインポート(⚠️ このステップでローカルDBが上書きされます)
import_dump実行前の確認事項
1. ローカルデータベースのバックアップ
bash
# テーマ配下の外にバックアップディレクトリを作成(初回のみ)
mkdir -p /path/to/slot-kouryaku/backups
# ローカルDBのバックアップを取得(テーマ配下の外に保存)
mysqldump -u root -p local > /path/to/slot-kouryaku/backups/backup_$(date +%Y%m%d_%H%M%S).sql注意: 巨大な SQL バックアップをテーマ配下(例: myCustom/backups/)に置くと、WordPress のテーマファイルエディター表示時にメモリ不足を引き起こす場合があります。バックアップは必ずテーマ配下の外に保存してください。
2. 設定ファイルの確認
bash
# 設定ファイルの内容を確認
cat config/local.env確認ポイント:
LOCAL_DB_NAME: 正しいローカルDB名が設定されているかPROD_DB_NAME: 正しい本番DB名が設定されているか- SSH接続情報が正しいか
3. SSH接続の事前確認
bash
# SSH接続を手動でテスト
ssh -i ~/.ssh/your-private-key.pem -p 8022 your-user@your-server-ip "echo 'test'"4. ローカルMySQLの起動確認
bash
# MySQLが起動しているか確認(パスワードはプロンプトで入力)
mysql -u root -p -e "SELECT 1;"実行時の注意点
ステップ4(ダンプ取得)まで実行した場合
- ローカルDBはまだ変更されていません
- ダンプファイルは
/tmp/db-sync-XXXXXX.sqlに保存されています - この時点で中断しても安全です
ステップ5(インポート)を実行する場合
- ローカルDBが完全に上書きされます
- 元のデータは復元できません(バックアップを取っていない場合)
- 実行前に必ず確認してください
トラブルシューティング
SSH接続エラー
bash
# SSH鍵のパーミッションを確認
ls -l ~/.ssh/your-private-key.pem
# パーミッションを600に設定
chmod 600 ~/.ssh/your-private-key.pem
# known_hostsにホスト鍵を登録
ssh-keyscan -p 8022 your-server-ip >> ~/.ssh/known_hostsデータベース接続エラー
bash
# ローカルMySQLが起動しているか確認(パスワードはプロンプトで入力)
mysql -u root -p -e "SELECT 1;"
# データベースが存在するか確認(パスワードはプロンプトで入力)
mysql -u root -p -e "SHOW DATABASES;"ダンプファイルが空の場合
- 本番環境のデータベース接続情報を確認
- 本番環境でのmysqldumpコマンドの実行権限を確認
- エラーログを確認:
/tmp/mysqldump-error-XXXXXX.log
安全な実行フロー(推奨)
バックアップを取得
bash# テーマ配下の外にバックアップディレクトリを作成(初回のみ) mkdir -p /path/to/slot-kouryaku/backups # ローカルDBのバックアップを取得(テーマ配下の外に保存) mysqldump -u root -p local > /path/to/slot-kouryaku/backups/backup_$(date +%Y%m%d_%H%M%S).sql注意: 巨大な SQL バックアップはテーマ配下に置かず、必ずテーマ配下の外に保存してください。
段階的実行スクリプトを実行
bash./scripts/sync-db-step-by-step.shステップ1-3を実行して確認
- 設定が正しいか確認
- SSH接続が成功するか確認
ステップ4を実行(ダンプ取得)
- ダンプファイルのサイズを確認
- ダンプファイルの内容を確認(必要に応じて)
ステップ5を実行(インポート)
- 最終確認をしてから実行
- 実行後、ローカル環境で動作確認
ステップ6を実行(URL置換)
- WordPressのサイトURLをローカル環境用に置換
- ローカルサイトが正常に表示されることを確認
復元方法
もし誤って実行してしまった場合、バックアップから復元できます:
bash
# バックアップから復元(パスワードはプロンプトで入力)
mysql -u root -p local < /path/to/slot-kouryaku/backups/backup_YYYYMMDD_HHMMSS.sql