2011-04-27 3 views
7

私はUmbracoのアプリケーションや拡張を作成して、バックエンドユーザーが開発サイトの変更をライブサイト。この移行は、1日に1回、またはバックエンドユーザーがバックエンドのボタンを押すと発生します。Umbracoのデータを開発サイトからライブサイトにプログラムで移行する

私はUmbracoがCourierパッケージでこれを提供していますが、明らかにこのケースではうまく機能しません。より

いくつかの詳細:

開発とライブサイトの両方が同じサーバー上に存在するので、そのデータベースを行います。データはあるフォルダから別のフォルダに転送するだけで、データベースのテーブルと同じに転送するだけで済みます。

わかりましたように、これについては2つの方法があります。

1)あなたは基本的にライブデータベースのティアダウンを行い、それを新しいバージョンに更新するフルマイグレーションを行います。必要なすべてのファイルをコピーします。

2)開発者サイトで変更したドキュメントタイプなどを含むパッケージを作成し、そのパッケージをライブサイトに読み込みます。

番号1の問題は、転送を完了したときにサイト全体を再公開する必要があるようだということです。私が理解している限り、あなたはwebserviceでこれを行うことができますが、代わりにコンソールアプリケーションを使用することができます。

私の質問は次のようになります。プログラムでパッケージを作成し、同じ方法でそれらをロードするか、何がプログラムによってこの移行を達成するための最良の方法だろうにする方法は

ありますか?

私はこれを行う方法のための損失で一種の午前として任意の提案をいただければ幸いです:)私は実際に私の意味での完全なミラーリングをやってしまった

EDIT

Robocopyを使用してフォルダ内で変更されたすべてのファイルを転送した後、SQLコマンドを使用して開発サイトのバックアップを作成した後、RESTORE SQLコマンドを使用してライブデータベースに復元しました。

SQLコマンドでいくつかの設定を行う必要がありましたが、スムーズに実行され、変更されたファイルの数によっては完全な転送に10秒かかります。

最後の1つです。変更を表示するには、Umbracoを再読み込みする必要があります。これを行うには、web.configファイルを手動で変更するか、プログラムでLastWriteTimeを設定します。

答えて

4

いつでもサイト全体の再公開を処理するusercontrolを作成できます。これはコンソールアプリケーションから呼び出すことができます。あなたはまた、確かに十分ですthe Courier 2 betaプログラム、参加でき

(とにかく機能のために、私はそれを自分でテストしていません)。

別のルートは、XMLフィードとしてすべてのノードを提供し、自動的にノードを移行するCMSImportのスケジュール機能を使用することができます。

これは厳しいものですが、多くのオプションがありますが、まだ弾丸はありません。私はクーリエ2がこれに完璧であり、熱心にそのリリースを待っていることを期待しています。

+0

しかし、どのようにデータベースのノードの移行を処理しますか? 他の人が答えを見ているだけで、実際に公開したくないページがある場合は間違って公開しないように、新しいページのIDを把握する必要があります。 –

+0

2つの同じデータベースから始めます。その後、1つをライブ環境に置くと、変更されるすべてのテーブルが再シードされ(本当に高い種から始めるために、どのテーブルが変更されるかわかりません)。既存のコンテンツを上書きすることができます(同じID)ソースデータベースの新しいコンテンツは、既存のコンテンツを妨げずにコピーできます。 – sebastiaan

+0

FYI:私は銀色の弾丸を探していましたが、これは私が得たものと同じくらいです.Umbracoでこれを行うことは非常に難しく、成功した自動化戦略を持っている人はたくさんいます。クーリエ2はこれを本当に簡単にすることになっています。 – sebastiaan