2017-06-15 6 views
0

私はワードプレスのウェブサイトを持っています。私はサイトのステージングコピーを作って、そこに変更を加えることができます。これで変更が完了し、ステージングサイトの新しいファイルとデータベースをLiveにアップロードします。キャッチは、ステージングサイトの.sqlファイルから新しい/変更された行をインポートし、ライブサイトの既存の行を保持するだけです。ライブのwp_postsテーブルには多くの既存の注文が含まれていますので、私が何を意味するのか分かっていれば、そのテーブル全体を上書きすることは望ましくありません。phpMyAdminを使用して既存のテーブルに新しい行のみをインポートします

これをphpMyAdminで行うには、どのような方法が最適ですか?また、mysqlコマンドを使用してこれを行うことも気にしません。説明してください。

mysqldump --no-create-info --insert-ignore --quick --where="id between from and to" <db> <table> > table.sql 

NB:--set-gtid-purged=OFFを追加します。GTIDが有効になっていると、キャプチャしたくない場合は

+0

ステージングサイトで変更されたライブWebサイトの行も更新しますか? –

+0

はい、変更された行と新しい行はすべて更新/追加する必要があります – mdarmanin

答えて

0

はこのような何かを試してみてください。

--no-create-info:再度実行するスキーマを無視する。
--insert-ignoreinsertの代わりにinsert ignoreステートメントを追加します。idが既にprodに存在する場合は無視します。
--where

--replace:あなたは重複行がで

+0

既存のIDも変更したい場合は、データが変更された既存の行を更新しません。 –

+0

add --replace – avisheks

0

を無視しないで交換することにしたい場合は--replace--insert-ignoreを置き換えるあなたがPRODに戻っ

EDITを復元するステージングのどの範囲を指定するにはファイルをインポートする場合、INSERTステートメントをREPLACE

に変更してください。 PHPMyAdminテーブル内の古い行がPRIMARY KEYまたはUNIQUEインデックスの新しい行と同じ値を持つ場合、古い行があることを除いて

は、正確にINSERTのような作品をREPLACE:10

The manual for REPLACEは、と述べています新しい行が挿入される前に削除されました

つまり、古い行が新しい行に置き換えられました。

UNIQUEインデックスまたはPRIMARY KEYのテーブルでは、これは機能しません。しかし、これがWordpressサイトだとすれば、このようなテーブルはほとんどありません。

+0

しかし、これは一度に1つのレコードを置き換えますか? – mdarmanin

+0

新しいレコードを追加して既存のものを更新するだけです(既存のもの、つまり、同じプライマリキーを持つレコード、つまりすべてのwordpressのデフォルトテーブルにあるレコードまたはユニークなインデックス)。 –

関連する問題