web-dev-qa-db-ja.com

Mysqlダンプ付きのページと投稿のみをエクスポートする

のみのページ および posts / mysqlデータベースからデータベースへのアプローチを使用してエクスポートする方法?より正確に:

  • どのテーブルをダンプ用に選択すべきか(私はwp-postswp-post-metaとします)
  • 一部のテーブル(ページ/投稿データを含むもの)のみをエクスポートし、すべてのテーブルをエクスポートしないことは安全です。

(私の目的は開発と本番サイトを同期させること、そしてprodサイトには多くの機能が追加されているのでpost festum私の選択はページと投稿のみをエクスポートすることです。何も便利ではありません。)

1
Miloshio

これは一般的には良い考えではありません。 このWordPressデータベースダイアグラム を参照してください。あなたが考慮する必要があります:

  • カテゴリまたはタグ(用語)、それらの関係、用語メタ、および分類法を持つ投稿
  • 投稿者(ユーザー)のいる投稿
  • コメントがある投稿
  • あなたが気付いていないかもしれない実際に投稿であるものは投稿です(例えばWordPressのほとんどすべてが投稿です - 多くのプラグインは投稿としてデータを保存します、いくつかの例はContact Form 7、Advanced Custom Fieldsフィールドグループ、そしてその他たくさん)
  • ライブサーバーと同期していない、開発用インストールで変更された可能性のある他の何か(例えば、オプションテーブルのレコードが変更されていないことを確認していますか?)

一般に、データベースの「ライブ」コピーを作成し、開発データベースに加えた変更はテスト目的でのみ行い、その後ライブサーバー上でそれらの変更を繰り返す必要があります。他のことをすると、その完全性を確保するために、すべてのデータを通じた長期にわたる長期にわたる狩猟の危険があります。 2つのデータベースをマージするのは楽しいことではありません。

あなたの状況のすべての詳細を知らずに、あなたが潜在的に持っているいくつかのオプションは次のようになります。

  • WordPressのインポート/エクスポート(あなたが試したと言ったが、なぜこれがうまくいかなかったのかはっきりしない)
  • 必要な投稿を手動で再挿入します(投稿数に応じて禁止される場合もあれば禁止されない場合もあります)。
  • 新しいテーブルに投稿を追加してから、レコードをループ処理して各レコードに対してwp_insert_post()を実行するスクリプトを作成します。
  • 各データベースのmysqldumpを取得し、実際のサイトで実際にどれだけ変化したかを判断するために差分を作成し、データベースを上書きして手動でオプションを設定できるかどうかを判断します。

他の解決策もあるかもしれません、そして最善はあなたの状況の詳細に依存します。私たちがこれまでに持ってきた情報を使えば、私はおそらく上記のスクリプティングオプションに傾いているでしょう。

EDIT: この答えが最初に書かれて以来、 Mergebot はリリースされました。それを保証することはできませんが、有望に見えます。良いプラグインを作成した実績があります。

0
Tim Malone

WordPress Import/Exportツールを使用して、開発サイトから本番サイトにページと投稿をエクスポートできます。インポート後に本番サイトのすべてのURLを手動で更新する必要があることに注意してください(例:dev.example.comをexample.comに変更)

本番サイトに顧客のログインと注文の記録がある場合、データベース全体をコピーするのは危険です。私は、mysqldumpを使用して、実稼働サイトの顧客注文レコードを改ざんせずに開発サイトと実稼働サイトを同期する方法に関する提案を探しています。

0
user1457659

コンテンツには、作成者ユーザーとコメント(そしておそらくそれ以上)が含まれます。エクスポート/インポートの方法としてDBの一部だけをダンプすることは、非常に堅牢なアイデアのようには思えません。

DBは比較的小さく、ハッキングを試みる代わりに完全なDBをエクスポート/インポートしない理由はほとんどありません。

0
Mark Kaplun