2013-04-10 16 views
7

DEVELOPMENTバージョンのアプリケーションをローカルマシンにインストールし、STAGEサーバーにテスト用にデプロイする(オプション)とPRODUCTIONサーバーにデプロイすると便利です。プロジェクト内にコードとデータの細かい裁量がある場合(たとえば、すべてのコードと設定をプロジェクトファイルとデータをデータベースに格納する場合など)、比較的簡単に実行できます。MODXを使用する場合の展開のベストプラクティスは何ですか?

MODXは、テンプレート、スニペットなどをデータベースに格納します。はい、このコードを静的ファイルに移動してから、これらのアイテムの変更を追跡するためにバージョン管理システムを使用することができます。しかし、これらのデータベースもデータベース内に表現の行を持っています。つまり、いくつかの項目を追加または削除すると、以前と同じようにデータベースを更新する必要があります。

パッケージマネージャーによるインストールではなく、拡張機能のファイルをコピーした場合(拡張機能ではDB内に独自のテーブルがあることが多いため)、問題が発生するようです。

もう1つの問題は、DEVとPRODのアプリケーションがファイル(configs)とデータベース(たとえば、ユーザーアカウントなど)に異なる設定を格納していることです。

DEV-STAGE-PRODの反復的な開発サイクルを整理する明確な方法はまだありません。だから、私の質問は次のとおりです。

  • 配備時にコピーするファイルとデータベーステーブルをコピーする必要がありますか?
  • モード(置き換え、無視)とは何ですか?
  • これを行う最も簡単で最速の方法は何ですか?

私の最大の懸念は、データベースを扱うことです。

P.S. MODXの "Revolution"バージョンについて話しています。

+1

私は、すべてのプロジェクトではなく一部の変更を展開する方法を意味します。この場合、通常の開発者は、プロダクション側には膨大なDBがあり、ローカルマシン上には小さなテストDBがあります。だから、データベースのどの部分をコピーしなければならないのか、これを行うための最善の方法は何ですか? DEVに新しいリソースを作成し、すでにPRODで占有されているIDを持っていると、リソースIDの競合はどうなりますか? –

答えて

3

データベースにはパス情報がまったく格納されていないはずです。以前のバージョンはmodx_workspacesテーブルにありましたが、その後は姿を消しました[2.2.4]。

[dev.mysite.com/stage.mysite.com/production ...]というURLの変更が心配な場合は、これはすべての.htaccessファイルにあります[以前はsite_urlシステム設定を変更しても消えてしまったようです。]

あなたが心配する必要があるファイルは、core/config/config.inc.php〜異なるパスを持つ3つの異なるファイルを作成するか、移行する。移動/更新のため

私のプロセスは、/ MODxのサイトを移行することです:

は、キャッシュをクリア! httpdocs.tar.gzをhttpdocs/ のmysqldump -u -p & xvfz the_database> export.sql

移動ファイルを、タールcvfz タールはデータベースをインポートします。 modx_workspavesテーブルをチェックし、古いバージョンのギャラリーを使用している場合はそれもチェックしてください。ほとんどのプラグイン&の開発者は、コード& DBテーブルにパス情報を保存しないように見えます。

もちろん、あなたのインストールを強化している場合、いくつかのステップがありますが、何も重要ではありません。 [rtfm.modxのModx記事の強化を参照してください。ディスク上に配置されている

https://github.com/digitalbutter/MODX-Mirror

https://github.com/digitalbutter/FEM

すべてのチャンク、スニペットなど:COM]

+0

アプリケーションの完全なコピーを作成する方法を説明したようです。 しかし、既にプロダクションサーバー(例:ユーザー生成コンテンツ)に巨大な独立したデータベースとDEVの小さなテストデータベースがある場合はどうなりますか? また、DEV用の単純なパスワードとPROD上の他の多くのアカウント(管理者、作者など)を持つ管理者アカウントを1つだけ持つことができます この場合、データベースの部分的なマージが必要ですか? また、リソースIDの競合の問題を解決するにはどうすればよいですか?私がDEVに関する新しいページを作成し、それをPRODに移すつもりなら、私はそのようなIDがそこにまだ空いているという保証はありません。 –

+1

リソースまたはリソースを追加する場合は、実動データのバックアップを初めてテストする必要がある場合は、非公開の状態でそれらを追加します。それ以外に、スニペット、テンプレート、チャンク、テレビ、ユーザー、ロール、グループまたはポリシーを変更する。最高の賭けはもう一度、本番のコピーをテストしてから実装します。何かと同様に、開発中のライブデータの変更が問題です。開発者からの変更をロールインする必要がある場合は、xpdoスキーマを掘り下げ、テーブルを変更したり、自分自身を書き留めたりする必要がありますいくつかのインポート/エクスポートスクリプト。 –

1

私は何を探していることは、このプラグインだと思います(MODxののバージョンによって異なります) 。ファイルに加えられた変更は、SQL Import/Reimportを完全に行う必要なしに、適切なデータベース変更を引き起こします。これにより、バージョン管理システム/分散開発環境/自動展開が可能になります。

関連する問題