サポート » 使い方全般 » 開発環境とDB移行について

  • 解決済 sensen0927

    (@sensen0927)


    いつもお世話になっております。
    今回初めて開発者という立場のもと、wordpressのサイトを作ってみました。

    サイトの開発などを行っている人は開発環境と実際に公開する本番サイトを分けて運用すると思い、主ドメインを本番サイト、サブドメインに開発環境を設定して作ってみました。

    本来でしたら、開発環境から本番環境へUPするのが普通ですが、今回は作ってしまった後に考えたことだったので、一度本番から開発環境へUPし、次回から手直しするようだったら開発環境から本番環境へUPするように致します。

    wordpressのファイルエクスポートはうまくいったのですが、DB移行で躓いてしまいました。

    phpmyadminで本番サイトのDBをエクスポートし、開発環境のDBにインポートしようと思いましたがAccess denied for user ‘開発環境のユーザー名’@’%’ to database ‘本番環境のDB’と言われインポートすることができません。 恐らく本番側のDBユーザーと開発側のDBユーザーとで権限に差異があって跨ぐことができないと思いましたが、どのように解消すればよいでしょうか。

    DBインポートに成功してもプラグインは初期設定に戻るらしいのですが、皆さんはどのようにプラグインを本来の設定に戻していますか?
    他に初期設定になるのは何もないでしょうか?

    また、開発環境と本番環境を分ける際には主ドメイン、サブドメインで分けることは悪いことではないでしょうか?

    色々質問ばかりで申し訳ございません。是非ご教授お願いします。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • ども。
    本番環境、開発環境がそれぞれどうなっているのか、
    きちんと書かれていないので、適切な回答は得られませんよ。

    本番環境、開発環境のそれぞれについて、
    Webサーバ、DBサーバ、データベース、データベースユーザ、プレフィックス(接頭辞)、
    Wordpressのインストールディレクトリ
    のそれそれが、何が同じで、何が異なっているのかきちんと整理して書いてください。

    おそらく、何が同じで何が違っているのか、文面を読む限りごっちゃになっているようです。

    以下、あくまで想像して話をすすめますが、

    Access denied for user ‘開発環境のユーザー名’@’%’ to database ‘本番環境のDB’

    とエラーが出るということは、

    本番環境のDBと開発環境のDBは違うということでしょうか。
    また、本番環境のユーザー名と開発環境のユーザー名も違うということでしょう。

    であれば、本番サイトのDBをエクスポートしたダンプファイルに、本番環境のDB名が
    入っていて、開発環境のユーザーには本番環境のDBへのアクセス権が無いために
    エラーが出ています。
    ここで、間違っても開発環境のユーザーに本番環境のDBへのアクセス権を与えてはいけません。操作を間違えると、開発環境のデータが意図せず本番環境に反映される事故に
    つながります。

    解決方法は、ダンプファイルを修正することです。
    おそらく、ダンプファイルは単にSQL文が書かれたテキストファイルのはずですから、
    テキストエディタ(UTF-8等の文字コードを扱えるもの)で開いて、
    本番サイトのDB名を開発環境のDB名に置換します。
    またあわせて、
    本番環境と開発環境で、以下のものが違えば、置換します。
    ・URL
    ・Wordpressのインストールディレクトリ
    ・プレフィックス(接頭辞)

    修正後に開発環境のDBに流せば、インポートできるはずです。

    DBインポートに成功してもプラグインは初期設定に戻るらしいのですが、皆さんはどのようにプラグインを本来の設定に戻していますか?

    基本的に、ファイルで設定項目を持つようなもの以外は、DBに設定値を持っていますから、正しくDBをインポートすればプラグインの設定も移せます。
    ただし、wp_optionsテーブルに設定値を持つプラグインやウィジットは、PHPでシリアライズしている都合で、URLの文字数が違うと設定値が消えてしまうことがあります。

    この場合は、データベースを直接操作するか、両方のダッシュボードを開いて、見比べながら設定しなおすしかありませんね。

    参考になれば。

    トピック投稿者 sensen0927

    (@sensen0927)

    回答ありがとうございます。とても参考になりました。
    少ない情報の中推測して書かれていましたが、推測とおりでしたのでとても分かりやすかったです。
    私の場合、ダンプファイルを直接修正しないといけないのですね。(ユーザー名、DB名など本番と開発で分けているため)
    aimaimさんや他の方は本番環境から開発環境へ移行する場合はどのように環境を整えて移行するのでしょうか。是非教えて頂ければと思います。

    本番環境から開発環境へ移行する場合はどのように環境を整えて移行するのでしょうか。

    質問の意図が良く分からないのですが・・・
    普通、開発環境でほとんどできてから、本番環境に移しますし、移行自体に環境というほどのものを用意しないので。

    どういう風に移行するかというと、私の場合は、
    開発環境が、ローカルのことも、別サーバのこともありますが
    各環境間のデータ移行は、基本的にデータベースをコマンドラインで操作してます。
    よく使うコマンドを環境に合わせて自動的に吐き出すツールは作ってますが、
    操作ミスでデータベースを消すことを防ぐために、
    あえて完全に自動化せずに、手作業の部分を作ってます。

    フォーラムのルールとして、解決していたら、解決済みにしてくださいね。
    では。

    トピック投稿者 sensen0927

    (@sensen0927)

    >普通、開発環境でほとんどできてから、本番環境に移しますし、移行自体に環境というほどのものを用意しないので。

    開発環境で出来てから本番へ移行するのが普通ですよね。質問の意図が分からなくて申し訳ございませんでした。とても参考になりました。ありがとうございます。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「開発環境とDB移行について」には新たに返信することはできません。