11

優れた小さな開発者になり、Gitを使用してExpressionEngineサイトをバージョン管理しようとしている人にとって、データベースをどのように処理しますか?

1つのExpressionEngineサイトで複数の開発者が作業しているという限られた経験では、リモートWebサーバーで実行されている単一のMySQL開発データベースからすべてを実行する必要がありました。これを試したことがある人にとっては、非常に遅いです。ページの読み込みには5〜10秒かかることがあり、開発が非常に困難になります。リモート開発サーバーで作業する方が早いでしょう。インターネット接続の速度/品質に依存せずにどこからでも作業できるようにするために、リモートのMySQLサーバーでの作業を避けようとしています。

他の人がMySQLデータベースをどのように処理するのか疑問に思っています。

すべての開発者が1つの中央データベースから実行されていますか?私たちのように遅さの問題に対処しましたか?

データベースをバージョン管理下に置いていますか?複数の開発者と複数のブランチ間のエクスポート/インポートをどのように処理しますか?

1人の開発者がいると、データベースを非常に簡単にインポート/エクスポート/コミットできますが、別の開発者をミックスに追加するとすぐに、非常に泥だらけになります。この巨大なトピックに関する皆さんの考えを聞くのを楽しみにしています。

ありがとう!

4

4 に答える 4

7

リモートデータベースを使用すると、DNS要求の失敗に多くの時間が失われるようです。

MySQLサーバーをで起動しますstart mysqld with --skip-name-resolve。(このトピックの詳細については、http://dev.mysql.com/doc/refman/5.0/en/host-cache.htmlを参照してください) 。

リモートデータベースを持つことは、私たちが複数の開発者と一緒にプロジェクトに取り組むための最良の方法であるように思われます。

于 2012-11-07T14:50:21.727 に答える
5

私はほとんどの場合、開発に中央データベースを使用します。使用するホストによっては、速度の差はそれほど大きくない場合があります。

明らかに、データベースに変更を加えていない場合、つまりテンプレート開発のみを行っている場合、データベースの同期を維持する必要はないため、データベースのローカルコピーを作成できる可能性があります。最終的にデータベースの変更を行う場合は、データベースの変更を繰り返すことを忘れないでください。

バージョン管理に関しては、ベースEEインストールのSQLファイルのコピーをベースリポジトリに保持しています。それ以外は、通常、データベースのコピーをGitに保存しないので、インポートやエクスポートなどはあまり行いません。

于 2012-11-07T14:52:43.250 に答える
2

私の会社(4人の開発者)では、それぞれ独自のDBをローカルで実行しています。しかし最近、私はRackspaceクラウドデータベース(ただし、他のクラウドデータベースプロバイダーもあります)をテストして、小さなラップトップでの実行が困難になる可能性のある重いDBを探しました。独自のdbサーバーを実行するよりも比較的安価であり、すぐにセットアップまたは削除できます。

于 2012-11-07T14:53:05.933 に答える
2

最近EEプロファイラーを見ましたか?複雑さにもよりますが、ホームページで20〜80のクエリが発生していることに気付くでしょう。

問題は、クエリごとに、MySQLがデータのリモート要求を実行し、応答をダウンロードしてから、ExpressionEngineにそのデータを提示する必要があることです。データベースへの20〜80回の往復が遅延の原因であり、それについてできることはあまりないと思います。リモート(ネットワーク外)データベースを使用すると、同じ遅延が発生します。

MySQLがマシンまたは本番サーバーで実行されている場合、追加のネットワークリクエストがないため、データのリクエストに遅延が発生します。これが違いです。

修正に関しては、内部ネットワークでホストされているデータベースに移動するだけです。ステージングに使用する本番環境を模倣したLinuxマシンがあります。ネットワーク上にあるため、ファイルでローカルIPアドレスを使用できdatabase.phpます。これははるかに高速です。

私たちがまだ抱えている問題は、チャネル/フィールド/エントリの問題です。開発者が新しいセクションで作業しているときは、新しいチャネルとフィールド、および/または新しいエントリを作成する必要があります。その機能を本番環境にプッシュする準備ができたら、それらを確実にエクスポートする方法がないため、本番サーバーでこれらの変更を手動で行う必要があります。私はこのアドオンに期待しています---これから見ていきます。

于 2012-11-07T17:59:55.713 に答える