2

Web アプリケーションが実稼働環境で使用されるようになると、拡張機能やバグ修正で更新するのに非常に苦労します。主な理由は、CMS システムの設計における初期の欠陥です。通常、各製品環境を更新するために何時間も費やす必要があり、エラーや長時間のデバッグが何度も発生します。私は泣き言を言っているように見えるので、議論の客観的な部分に戻りましょう。

この欠陥は、コンテンツとプログラミング機能がデータベースに一緒に保存される方法に起因します。つまり、基本的にデータがどのように表示され、データ自体がデータベースに保存されるかです。いくつかのファイル システムの変更がありますが、コンテンツに関連するものではありません。また、アプリケーション自体が、データベースで追跡できない多くの参照を作成します。

アプリケーションがエンドユーザーと利害関係者によって使用されていることがわかるように、開発チームは手動で変更を本番環境に公開する必要があります。

もう 1 つの問題は、データベースが変更されると、アプリケーションがファイル システムを動的に変更することです。そのため、開発環境と本番環境の両方が異なり、それらを同期するためにデータを移動するか、開発チームが多くの手作業を行う必要があります。

もっと詳しく説明したり、さらに例を挙げたりできます。必要な場合はコメントをください。

4

6 に答える 6

2

手作業を自動化。アプリケーションを開発環境から本番環境に移行するために実行する必要があるすべてのアクションを注意深く書き留め、それらのアクションを自動的に実行するスクリプトを作成します。たとえば、スクリプトは、アプリケーション固有のデータを含むすべてのテーブルを削除し、アプリケーションの現在のニーズに基づいてそれらを再度作成します。

スクリプトを複数の部分に分割して、テストとデバッグを簡素化します。たとえば、一部がシェル コマンドで、別の部分が SQL コマンドである場合があります。十分なログ記録とエラー チェックを使用します。スクリプトをアプリケーションの開発プロセスの一部にし、リビジョン管理下に置きます。

于 2008-12-23T15:56:23.103 に答える
1

私も過去に似たような痛みを経験したことがあります.

  1. コードであるデータ (顧客データではないが、アプリの機能に不可欠なデータベース内のデータ) を分割します。これらすべてのテーブルを別のデータベースにプルします。

  2. そのデータをデータベースに入力する SQL スクリプトを記述します。これにより、実稼働データやバックアップに依存することなく、アプリのスケルトンを再作成できます。

  3. 真に動的に変化しないデータを可能な限り取得し、それをプロパティ ファイルと構成ファイルに入れます。この種のデータのフラット ファイル ストレージは理想的です。読み取りが速く、データベースで維持する必要がありません。

于 2008-12-23T15:58:58.137 に答える
0

これですべての問題に対処できるわけではありませんが、開発データベースを更新して本番環境と同じ構造にし、いくつかのサンプル データを入力するスクリプト/バッチ ファイルの「ワンクリック」セットを用意すると便利な場合があります。(これは私の最後の仕事で得たもので、私たちにとってはうまくいきました)

于 2008-12-23T15:57:10.560 に答える
0

スクリプトを使用して、開発、QA、および本番環境への展開をすべて同じ方法で行います。QAでも本番でも、手を突っ込む必要はありません。私たちの場合、 Antを使用しますが、それはすべての変更を行うために必要な機能を提供するためです。そのため、他のコードと同様に、ビルド プロセスを制御し、スクリプトとしてバージョン管理する必要があります。

于 2008-12-23T15:57:37.093 に答える
0

また、優れたデータベース比較ツールを使用できるようにも思えます。環境間の移行などを可能にするスクリプトを生成するのに役立つ場合があります。

SQL Server を使用している場合、Red Gateには優れたツールがあると聞きました。比較ツールは SQL Compare と呼ばれます。

私は同じ意見です。データベースを操作して「アップグレード」するために、インストーラー、SQLスクリプト、またはカスタム.NETアプリのいずれかを使用して、「アップグレード」を自動化する方法を理解する必要があります。

于 2008-12-23T17:11:38.163 に答える
0

さらに、 Liquibaseに興味があるかもしれません。これは、データベース データとスキーマの変更を追跡するオープンソース ツールであり、運用環境の開発データベースで実行したリファクタリングを簡単に適用できます。また、DBMS (ベンダー) に依存しません。前述のように、prod デプロイメントをアップグレードする手順を自動化することもお勧めします。

于 2008-12-23T17:20:27.270 に答える