2013-01-24 6 views
5

私たちの開発環境と本番環境には、異なるデータベースIPアドレスがあります。当社の開発環境は、開発者マシン上でローカルに実行され、ローカルネットワーク上の単一の開発データベースサーバーを指しています。当社の生産環境では、RackSpaceでホストされているデータベースを使用しており、ローカルネットワーク上でホストされています。どうやら、私たちの開発用IPアドレスは本番環境にキャッシュされているようです。これまでに行ったことは次のとおりです。MagentoデータベースのIPがキャッシュされます

  • 生産上の/ etc/local.xmlのIPアドレスが正しいことを確認しました。
  • devのIPアドレス
  • は、MySQLデータベースをダンプされたためにそこに任意の奇妙なキャッシュ
  • をクリアするために私たちのmemcachedサーバーは、私達の全体のコードベースをgrepped再起動
  • *の/ var /キャッシュ/ *の内容とVAR/full_page_cacheを削除しましたそして、(私たちは必死だった)
  • で/ tmpの内容を削除した
  • 無効カスタムモジュール

これは持っているのdevのIP用のダンプをgrepped問題なく何週間も働いていた。それは問題が始まった設定キャッシュを無効にしたときでした。私はあなたが思っていることを知っています。最後に、キャッシュがクリアされて以来、誰かが行った設定変更を最終的に見つけました。それは理にかなっている。理にかなっていないのは、私が上記のすべてのキャッシュをクリアしたことです。enabled the config cache using MageToolとすべてが魅力的です。

答えて

9

この全体を修正することは2段階のプロセスでした。

当社の生産と開発環境が異なるIPアドレスが必要なためapp/etc/local.xmlは人跡未踏で、代わりに我々は、開発者のすべてが迅速かつ容易にapp/etc/local.xmlにそれを上にコピーし、起動して実行できるようにapp/etc/local-example.xmlを追跡。これは企業標準の一部となっており、他のすべてのプロジェクトでも使用しています。ありがたいことに、私の同僚の1人がそれを発見しましたMagento loads all the xml files in app/etc/.

私たちの開発IPは、曖昧な場所で魔法のようにキャッシュされていませんでした。そのファイルの名前をapp/etc/local.xml.exampleに変更した後、私たちの開発IPの参照が中止されました。わーい!

これは質問には直接関係していませんが、解決策によって新しいバグが導入されたので、私はそれについて言及したいと思います。一旦XMLファイルの名前を変更し、すべてのキャッシュをクリアしたところ、新しいエラーが発生しました。

PHP Fatal error: Call to a member function setQueryHook() on a non-object in app/code/core/Mage/Core/Model/Resource/Setup.php on line 347

は、我々のサンプルファイルでは、単一ノード内 <default_setup />当社のデータベースリソースを定義しました。私たちの生産環境では、実際には a triple-m setupを別々のIPで読み書きクエリ用に用意していますので、 <default_setup />ノードの代わりに生産用に <default_read />ノードと <default_write />ノードがありました。私は、リソースで許可され、必要とされているものを正確に文書化することはできませんでしたが、 the instructions in another StackOverflow post on the topicごとに読み取り/書き込み分割が設定され、今日までは素晴らしい結果でした。

私は慌てて、<default_write />ノードの名前を<default_setup />に変更しました。すべてが魔法のように再び働き始めました。読み書きが正しく分割されているかどうかはまだ分かりませんが、すべてが機能していることを確認したらこの回答を更新します。

+0

ありがとうございました。私は数時間の検索を行いました。 – Alekc

+0

ちょっと、あなたの ''ノードに何が間違っているのか分かったことはありますか? – JMTyler

+0

悲しいことに、いいえ、私はそれに戻ってくる機会がなかったので、私はそのプロジェクトから移ってきました。 –

関連する問題