2013-07-15 12 views
6

私は大規模な大学で働いており、ソース管理システム(git、svnなど)を使ってウェブサイトを管理するように指示されています。 JoomlaはMySQLに大きく依存しています。GitでJoomlaのWebサイトを管理していますか?

現時点では、Webサイトを変更するたびにライブサーバーにプッシュする開発サーバーを使用するシステムはほとんど機能していません。それは痛みで、いつもうまくいくわけではありません。また、別の開発者が行った変更を上書きすることもできます。

devブランチのJoomlaフロントエンドからコンテンツを管理し、その変更をテストブランチに、マスター(ライブ)ブランチにプッシュすることができます。

私は、基本的に、データベースに依存しているJoomlaのようなCMSを使ってウェブサイトを管理するための良い戦略は何ですか?

+0

によって翻訳された、あなたのコンテンツについて、またはあなたのコードについて話していますか? – Elin

+0

私はJoomlaからコンテンツを管理したいと思います。私は、コードとデータベースを同期させておくことを心配しています。 – Kickasstimus

+0

質問は[Programmers](http://programmers.stackexchange.com)の方が適切かどうかわかりません。しかし私の経験では、データベースはソース管理でバージョンアップするのが難しいです。しかし、あなたが使うことができる1つの戦略は、Gitで '.sql'ファイルとして使用するSQLスクリプトやクエリなどを保持し、テーブルの変更など、データベースを変更する必要があるときはいつでもそれらを実行することですそれらはデータベース構造の変更です。 Joomla **のコンテンツ**を管理したい場合は、バックアップを頻繁に行うだけです。 –

答えて

3

データベース(コンテンツはdbに保存され、イメージとメディアはファイルシステムに保存されます)を同期したいので、dbをファイルにダンプするためにcommit/pushスクリプトが必要です。プルスクリプトdbをロードする。これは、プレフックとポストフック、http://githooks.com/またはgoogleで行うことができます。

しかし、あなたが別に同期したいと思うJoomlaのさまざまな部分があります。

  • 編集サーバー:コンテンツは
  • DEVにサーバーを管理している:拡張子がテストされ、
  • テストサーバー
  • 生産を設定されている

    のは、3台のサーバを考えてみましょうサーバー

のは、情報の3層を考えてみましょう:

  1. ユーザーとセッションデータ:任意のユーザーが本番サーバのログインに登録した場合、これは全くの人がログアウトしていないので、同期、およびべきではありません保存されます。

  2. コンテンツ、ユーザーグループと資産(権限):あなたがコンテンツを持っていない限り、これはテストへの生産へとDEV(に編集から行かなければならない記事、ニュース、画像ですユーザレベルで固有の権限はすなわち、各ユーザは、各コンテンツ項目の個別の権限)

  3. テンプレート、拡張機能、モジュール、メニュー構成があります。これは、DEVにテストから行きます生産および編集

これらの各データグループには、関連するデータベーステーブルをコミット/プッシュするために独自のブランチとカスタムプリコミットフックが必要です。各グループのテーブルのリストは、使用している拡張機能によって異なります。

私はそれはイタリア語での記事を書かれており、SVNのためしかし、あなたは我々が使用するのbashスクリプトのいくつかをつかむことができている:やGoogle http://translate.google.com/translate?sl=it&tl=en&js=n&prev=_t&hl=it&ie=UTF-8&u=http%3A%2F%2Fwww.fasterjoomla.com%2Fjoomla-tips%2Fsvn-per-joomla

+0

生成されたダンプファイルをVCSに保存する場合、 '--skip-comments'と' --skip-dump-date'コマンドラインオプションを使用してMySQLテーブルをmysqldumpにダンプすることをお勧めします生成されたファイルが以前のダンプの結果との差異を少なくする可能性があります。 MySQLのグラントはPercona Toolsスイート(旧Maatkit)の 'mk-show-grants'ツールを使って' mk-show-grants --noheader --notimestamp --drop --flush'のようにダンプすることができます。 – kostix

関連する問題