0

私はPHPcmsでサイトを管理しています。
このサイトは本当に大きく(250ページ)、重要です。
サイトでは常に6人の翻訳者とコンテンツ編集者が並行して作業しています。
今日まで、CMSは箱のように機能し、展開するために多くの変更を加える必要はありませんでした。

ここで、サイトテーマをより頻繁に開始および更新し、コンテンツ領域を追加してCMSにモジュールを追加します。

展開アクションでは、コンテンツエディターのアクセスをブロックして更新を行うことができますが、これは問題ではありません。
問題は、新しい機能を開発したい場合、開発時間が長くなることです(1週間や1か月など)。

開発期間中、内容は大幅に変更されます。
ケースの95%で、cmsのアップグレードはデータベース構造とデータ変更に関係します。
それで、開発中にサイトで行われた作業を失ったり損傷したりせずに、サイトのバージョン/データ/メタデータを更新するにはどうすればよいですか?

Subversionを使用して、独自のデータベースを備えた開発サーバーとステージングサーバーがあります

私はConcrete5を使用しています。

ありがとう

更新1
自分のサイトにpage_titleという名前のフィールドがあり、名前をpage_descriptionに変更したいとします。変更は、データベース構造ではなく、データベースコンテンツ
実際に発生しています。 したがって、開発環境でこれを変更することはできますが、本番環境にデプロイする方法はありません。 まず、データベース間で変更が実際にどこで行われているのかわからないためです。 次に、データベースに変更するスクリプトがある場合でも、その変更を追跡してスクリプトに追加することはほとんど不可能です。


4

3 に答える 3

3

2 つの推奨事項:

  1. 常に、製品版とは異なるコード ベースで開発を行ってください。理想的には、独自の開発用に別のデータベースと CMS インスタンスを用意し、テストして承認されたら、本番環境をバックアップし、データベースとコードを移行します。

  2. 常にすべてのデータ移行タスクを統合スクリプト (または一連のスクリプト) に含めます。また、以前のバージョンのデータベースにすばやく戻すことができるように、スクリプトのアップグレード/ダウングレード バージョン (十分にテストしたもの) を用意する必要があります。

于 2012-05-28T04:29:24.503 に答える
0

データベースを満足に処理できるバージョン管理システムをまだ見つけていませんが、RedGate には検討する価値のある SQL バージョン管理製品がいくつかあります。本番データベースに構造的な変更を加えるとき、私が常にしなければならなかったことは、既存のデータを保持しながら必要な変更を行う SQL スクリプトを手書きすることです。そして当然のことながら、開発サーバーでアップグレード スクリプトをテストします。繁雑。

于 2012-05-28T04:41:21.703 に答える
0

プロフェッショナリズムの問​​題として、時間をかけてローカル開発ミラーをセットアップし、それをすべての変更の根拠として使用することをお勧めします。

コードで作業するときは、バージョン管理システムを使用することをお勧めします。これにより、元のコードに加えた変更を追跡できます。

多くの手間を省くために、ミラーを作成する前に、実行中のすべてのソフトウェアとバージョンを書き留めておくことをお勧めします。

または、サーバー上にサブドメインを作成し、サイトの複製をそのドメインにロードすることもできます。その場合は、必ずデータベースのシャドウを使用してください!

アプリケーションが終了したら、サイトへのアクセスをブロックし、ファイルをライブ サーバーにコピーします。ダウンタイムは 1 時間または 2 時間以上であってはなりません。

于 2012-05-28T04:29:51.727 に答える