ローカル環境   ※当サイトのコンテンツには広告が含まれる場合があります。

wordmoveで誤ってデータベースをデプロイした場合の復元方法

2022-12-10 yume-tada

recovery-method-of-wordmove-wrong-deployed

wordmoveで「push」と「pull」を間違って実行してしまった人は必見です。リカバリ方法をまとめています。

pushとpullを間違って実行してしまった!

findout
お調べさん
ゆめただのり
ゆめただ

大丈夫です! 元に戻せます!

本番環境とローカル環境を同期させるために便利なwordmove。

しかし、間違って逆方向にデータをデプロイしてしまうと、悲惨なコトに。

実は、wordmoveはデプロイするときに、自動でバックアップを取ってくれています。

本記事では、誤って逆方向にwordmoveでデータベースデプロイしてしまった場合の復元方法をまとめました。

本記事を読んでわかるコト

☞ wordmoveで、データベースを逆方向にデプロイしてしまった場合、元のデータベースに戻す方法

☞ 逆方向にデプロイしないように設定する方法

ゆめただも間違ってデプロイしてしまった

ゆめただも間違ってデプロイしてしまい、

1か月前の古い環境に戻ってしまったコトを経験。

古い本番のデータをローカルに上書きしてしまいました

この時必死に戻す方法を探し、解決した方法をまとめています。

同じ失敗をしてしまった人は、安心して読み進めてください。

Depression amico

この記事を書いた人【ゆめただ】

この記事を書いた人
track?id=8172&type=classic&u=b661adb8 cfca 4f4f 8820 86fb63982b9a

誤ってデータベースをデプロイしてしまうケース

例えば、ローカルから本番へデータベースをコピ―する場合。

ローカル側が親になるので、「push」(押し出す)コマンドを使います。

ここで誤って、「pull」(引っ張る)をしてしまうと、

本番環境のデータベースを引っ張ってきてしまいます。

「push」と「pull」を間違ってしまうため、

古いデータを持ってきてしまう間違いが起こります。

wordmove-push-pull
wordmoveのpushとpullの関係

実はwordmoveはバックアップを取っている

wordmoveは、データベースをデプロイする前に、

まず、前のデータベースをバックアップしてから、実際のデプロイを行う仕様になっています。

ゆめただはこれを、失敗して初めて知りました

wordmoveでローカルから本番へpushする場合

wordmoveでローカルから本番へpushする場合は、

ローカルのデータベースを本番へpushする前に、

本番のデータベースがローカルに自動でバックアップされます。

ローカル→本番(push)

$ wordmove push -e production -d

wordmove-push
wordmove push

wordmoveで本番からローカルへpullする場合

wordmoveで本番からローカルへpullする場合は、

本番のデータベースをローカルへpullする前に、

ローカルのデータベースがローカルに自動でバックアップされます。

本番→ローカル(pull)

$ wordmove pull -e production -d

wordmove-pull
wordmove pull

もとのデータベースに戻す方法

もとのデータベースに戻す方法です。

誤ってローカルに本番のデータベースをpullしてしまった場合の方法をまとめました。

作業は自己責任で

直接データベースを変更することになりますので、作業は自己責任でお願いします。

必要なコト

1.データベースを戻すためには、ローカルの環境にコマンドベースで操作できる環境が必要です。

  • Ubuntu for windows
  • Cygwin64 Terminal

 などが一例です。

バックアップされたデータベースを見つける

誤って本番のデータベースpullしてしまっても、ローカルのデータベースは残っています。

wp-contentフォルダに、「local-backup-xxxxxxxxxx.sql.gz」というファイルがあるはずです。(xxxxxxxxxxxは数字)

このファイルの日付を確認して、誤ってpullした日時に近いものを探します。

一番新しいファイルを探せば間違いないでしょう。

wordmove-pull-repare
wordmoveで誤ってデータベースをpullした場合の戻しかた

\新しいローカルバックアップファイルを探す/

コマンドウインドウ

$ ls -ltr local-backup*

-rw-r--r-- 1 members 217225 Jan 16 2021 local-backup-1609650020.sql.gz
-rw-r--r-- 1 members 217162 Jan 16 2021 local-backup-1609649930.sql.gz
-rw-r--r-- 1 members 209502 Jan 16 2021 local-backup-1609649520.sql.gz
-rw-r--r-- 1 members 192382 Jan 16 2021 local-backup-1609649254.sql.gz
-rw-r--r-- 1 members 171290 Jan 16 2021 local-backup-1609647904.sql.gz
-rw-r--r-- 1 members 171256 Jan 16 2021 local-backup-1604155029.sql.gz
-rw-r--r-- 1 members 158203 Jan 16 2021 local-backup-1601641487.sql.gz
-rw-r--r-- 1 members 179446 Jan 16 2021 local-backup-1599399270.sql.gz

データべースファイルを復元する

バックアップされたデータベースが見つかったら、

データベースを復元します。

バックアップデータベースは、gzipという圧縮形式でファイルに圧縮されています。

この圧縮ファイルを、gunzipコマンドを使って解凍します。

コマンドウインドウ

$ gunzip local-backup-xxxxxxxxxx.sql.gz

ファイルが解凍できているか確認します。

先ほど解凍したファイルが、.sqlファイルに解凍されていれば成功です。

コマンドウインドウ

$ ls local-backup*

local-backup-xxxxxxxxxx.sql

WP-CLIをインストールする

データベースをインポートする際に、WP-CPIのコマンドを使用します。

WP-CLIとは、コマンドベースでWordpress関連の機能を実行できるツールです。

コマンドベースで「wp」を実行して、使用方法が表示されればインストールされています。

インストールされている場合は、読み飛ばしてください。

ファイルをダウンロード

$ curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

pharファイル動作を確認

$ php wp-cli.phar --info

pharファイルに実行権付与

$ chmod +x wp-cli.phar

コマンドファイルの移動

$ mv wp-cli.phar /usr/local/bin/wp

wpコマンド実行確認

$ wp --info

wp --info コマンドを実行して、応答が戻ってくれば成功です。

$ mv wp-cli.phar /usr/local/bin/wp

wpコマンド実行例

$ wp --info

OS: Linux 5.10.16.3-microsoft-standard-WSL2 #1 SMP Fri Apr 2 22:23:49 UTC 2021 x86_64
Shell:
PHP binary: /usr/local/bin/php
PHP version: 7.4.27
php.ini used:
MySQL binary: /usr/bin/mysql
MySQL version: mysql Ver 15.1 Distrib 10.5.12-MariaDB, for debian-linux-gnu (x86_64) using EditLine wrapper
SQL modes:
WP-CLI root dir: phar://wp-cli.phar/vendor/wp-cli/wp-cli
WP-CLI vendor dir: phar://wp-cli.phar/vendor
WP_CLI phar path: /var/www/html
WP-CLI packages dir:
WP-CLI cache dir: /root/.wp-cli/cache
WP-CLI global config:
WP-CLI project config:
WP-CLI version: 2.7.1

データベースファイルをインポートする

wordpressがインストールされているフォルダに移動します。(wp-contentがあるフォルダ)

先ほど解凍したデータベースファイルを「wp db import」コマンドでインポートします。

Success」と表示されれば成功です。

コマンドウインドウ

$ cd WordPressインストールフォルダ

$ wp db import /Wordpressインストールフォルダ/wp-content/local-backup-xxxxxxxxxx.sql

Success: Importef from '/Wordpressインストールフォルダ/wp-content/local-backup-xxxxxxxxxx.sql' .

wordmoveのデプロイ方向を間違わないようにする方法

wordmoveのデプロイの方向を間違わないように設定する方法をまとめました。

Movefile.ymlファイルの設定を追加して、

push、pullする方向と種類を限定しておきます。

Code-typing

設定方法

forbidの設定を追加、同期するファイルとしないファイルを定義します。

データ転送を禁止したいところをtrueに設定。

それ以外は、falseに設定。

Movefile.yml設定例

push:

  プラグイン、テーマ、mu-pluginのデータ転送禁止。

 それ以外はOK。

pull:

 全て転送禁止。

  forbid:
    push:
      db: false
      plugins: true
      themes: true
      uploads: false
      mu-plugins: true
    pull:
      db: true
      plugins: true
      themes: true
      uploads: true
      mu-plugins: true
ゆめただのり
ゆめただ

これで、間違って上書きしてしまったデータベースをもとに戻せます。

お困りのあなたは、是非試してください。

-ローカル環境