私はかなりWordpressに慣れていません、そして私は私のローカルサーバーからデータベースを取り出して、そしてWordpressマルチサイトの上のサーバー上のデータベースとそれを置き換える方法について少し混乱しています。
以前はローカルからサーバーにデータベースを置き換えましたが、マルチサイトでした。
私が通常取るステップは:
試してみると、サーバー上のテーブルはローカルのテーブルとは大きく異なります。
私のローカルデータベース構造は次のようになります。
通常、サーバーデータベースは同じですが、この場合は違います。
サーバーデータベースの構造
だから私はこれに取り組む方法について少し混乱しています。それでも私はいつもしていることをやることができますか、または私がとる必要がある追加のステップがありますか?
前もって感謝します。
編集:私はこれを少し過度に複雑にしたと思います、私はただサーバー上に新しいデータベースを作成し、代わりにwp_config.phpファイルを指すことができ、そしてすべてが良いはずです
編集2:nopeは思ったようには動きません。リダイレクトループエラーが発生し続ける
編集3: @ Michael Ecklund に感謝します。プライマリページのデータベースを更新していたので、新しいサイトを作成する必要はありませんでしたが、それでも残りの 指示に従ってください 彼は書いて、それはかなりスムーズになりました。最初は少し混乱していましたが、それは私自身の知識不足でした。
編集4:データベースの移行を行った後にダッシュボードへのアクセスを失ったとしたら、ちょっとしたFYI。メインデータベースと* _options(私の場合はtenp_options)テーブルに移動し、option_name列の下でwp_user_roles
を探し、その列名をサイトのプレフィックス(私の場合はtenp_
)に変更します。もう一度ダッシュボードにアクセスします。
始める前に:
WordPressのスタンドアロンコピーがインストールされているWebサーバー上のディレクトリとWordPressのマルチサイトコピーがインストールされているWebサーバー上のディレクトリを見つけて、両方のインストールのwp-config.php
ファイルを開きます。 PHP定数DB_NAME
を見つけます。 WordPressの特定のインストールが使用しているデータベースの名前が含まれています。
デフォルトでは、データベーステーブルのプレフィックスはwp_
です。
データベースを調べてもデータベーステーブルのプレフィックスを特定できない場合。あなたはあなたのWordPressインストールのベースディレクトリを調べて問題のサイトのwp-config.php
ファイルを開き、$table_prefix = 'wp_';
のような行を探すことができます。
あなたの状況では、それはのようになります:
wp_
です。tenp_
の習慣です。ローカルのデータベースサーバーで、これらの各データベース用に一時データベースを作成します。おそらく、物事を単純にするために、1つのデータベースに "standalone
"、2番目のデータベースに "multisite
"というラベルを付けます。
standalone
"データベース(今作成したもの)にインポートします。multisite
"データベース(今作成したもの)にインポートします。これが、必要なURLの変更を置き換える可能性があるステップです。 (httpからhttpsへ)、(非wwwからwwwへ)、(URLへのディレクトリの追加または削除)など.
ローカルのデータベースサーバーに作成した "standalone
"データベースでこのタスクを実行します。
あなたがそれらをMultisiteインストールの中でどのようにしたいかということに物事を変えることを忘れないでください(最終結果)。
この手順では、データベースツールが必要になります:
ステップ4.2 - ユーザーと投稿者
スタンドアロンインストールからすべてのユーザーに関するメモを作成し、古いユーザーIDを新しいユーザーIDに(Multisiteインストールから)マップすることをお勧めします。
単に一時的なテキストファイルを作成して次のようにするだけです。
1 => 4
8 => 23
15 => 9
左側の数字はスタンドアロンインストールのIDで、右側の数字はMultisiteインストールのIDです。
次に、post_author
テーブルのwp_posts
列を更新して、古いユーザーIDをすべて新しいユーザーIDに更新します。そうでなければ、スタンドアロンからマルチサイトへのあなたの移行されたサイトを見るとき、あなたは1つの混乱した子猫になるでしょう。それはあなたのサイト上のものがランダムな人々、そしておそらくあなたのネットワーク内の異なるサイトからの人々によってさえ投稿されると言うことになるでしょう。見落とされるならば、これは破滅的になることができます。
テキストファイルの各ユーザーIDマッピングに対して、MySQLに次のようなコマンドを発行します。
UPDATE wp_posts
SET post_author = '4'
WHERE post_author = '1'
SET post_author = '4'
行は新しいユーザーID(MultisiteインストールからのユーザーID)です。WHERE post_author = '1'
は古いユーザーID(スタンドアロンインストールからのユーザーID)です。私はまだこのステップのための良い解決策をまだ見つけていません。私は通常、Multisiteインストールでユーザーを手動で再作成するだけです。
言い換えれば、私は通常2つのテーブルwp_users
とwp_usermeta
をドロップするだけです。
誰かがこのステップを改善したい場合は、ここで自由にガイダンスを編集して追加してください。
このステップはステップ4とよく似ています。
ローカルデータベースサーバーの "standalone
"データベースで、古いテーブル名を新しいテーブル名にマップします。
これはあなたのMultisiteインストールからサイトIDを知る必要があるステップです。
例として:あなたのサイトIDが15
で、あなたのMultisiteインストールでのあなたのデータベーステーブルプレフィックス使用がtenp_
なら、データベーステーブルwp_posts
はtenp_15_posts
になります。
データベーステーブル名を更新するために使用できるMySQLコマンドは次のとおりです。
RENAME TABLE `wp_posts`
TO `tenp_15_posts`;
データベースが十分に小さい場合もあります。データベース全体をエクスポートして、テキストエディタで開くことができます。それからすべてを見つけて交換してください。完了したら保存します。
上記の変更がすべて完了したら、ローカルデータベースサーバーから "standalone
"データベースをエクスポートします。
.sql
ファイルをローカルデータベースサーバーの "multisite
"データベースにインポートします。multisite
"データベースをエクスポートします。multisite
"データベースの.sql
ファイルをインポートし、既存のMultisiteインストールで使用されているデータベース(すべてのテーブルを削除したもの)にインポートします。基本的には、現在のMultisiteインストールのデータベースを、新しく移行されたStandaloneサイトを含む変更されたデータベースに置き換えるだけです。移動./wp-content/
.からファイルをアップロードします
スタンドアロンストアとマルチサイトストアでは、ファイルのアップロード方法が異なります。マルチサイトはそれらを./wp-content/sites/{$site_id}/
に格納します。アップロードしたファイルも適切に移動してください。
プライマリサイトの変更:
Multisiteデータベースでデータベーステーブルwp_site
を探します。列id
とdomain
を適切に編集します。
site_id
テーブルのwp_blogs
列も編集する必要があるかもしれません。
これらの行についてもwp-config.php
を見て、もう一度、それに応じてそれらを調整してください。
define( 'DOMAIN_CURRENT_SITE', 'www.your-domain.com' );
define( 'SITE_ID_CURRENT_SITE', 1 );
define( 'BLOG_ID_CURRENT_SITE', 1 );
便利なリンク:
End.
混乱を招くようなことがあれば、コメントしてください。それを解決しようとします。
データベースは確かにmultiwpのために異なって設定されています、それらのtenp_12はマルチサイトの各サイトのための接頭辞です。ローカルで運営しているサイトはマルチサイトではないようです。 (プライマリではない)別のサイトを追加しようとしている場合の私の提案は、まずマルチサイトダッシュボードからそのサイトを追加し、そのサイトにテーブルをドロップします(つまりtenp_x、xはサイトIDに似ています)。これは、カラム名だけでなくテーブル名もプリアンプリネームする必要があります。その後、ポイント6で説明したように、siteurlの値とサイトのURLのホームの値を設定できます。