データベースとGUIの両方で「ワンクリック」インストールが困難です。しかし、バージョニングやタイムスタンプを使用してデプロイメント項目を整理すると、それらの項目を一緒に保つことができます。ソースは、これらのアイテムをロールバックして必要に応じて必要なバージョンを起動できるように制御します。デプロイメントを1つのユニットとして関連付けるために、GUIコンポーネントと一緒にバージョン番号またはタイムスタンプを結びつける方法があります。
たとえば、変更データベーススクリプト(FooTable v100、v101、v102)をバージョンアップするか、タイムスタンプしてソース管理にチェックインすることができます。いくつかのタイプの構成データベースにさまざまな関連付けを格納します。私の仕事では、SharePointリストを使用して展開を項目化し、SharePointリスト項目参照を使用して、特定の変更のすべての異なる項目をまとめて参照します。すべてのソースが管理されているため、必要に応じて特定の変更の展開項目を簡単に把握して取得できます。
あなたはこのような
データソース= myServerAddressとして信頼された接続を使用する接続文字列を使用することができます;初期カタログ= MYDATABASE;統合セキュリティ= SSPI;
だから、環境ごとに異なるユーザー名とPWを埋め込む必要はありません。それぞれの環境サーバー上で、サーバー名とデータベース名をmachine.configまたはweb.configに格納できます。初期カタログ= myDevDataBase;統合セキュリティ= SSPI
のでDEVに、のConnectionStringは
データソース= myDevServerである可能性があります。テストの
:
データソース= myTestServer;初期カタログ= myTestDataBase;統合セキュリティ= SSPI;
これらをサーバーの構成ファイルに格納する場合は、パッケージ内で変更する必要はありません。
パッケージにその設定を保存する必要がある場合は、展開する環境に基づいて設定を動的に変更する手法を使用する必要があります。たとえば、環境変数を使用して環境を判断し、configを動的に変更するために実行するコードを知ることができます。コードの代わりに、XSLTを使用してXML設定を変更することもできます。インストール/アンインストール時に実行するカスタムアクションもMSIで設定できます。デプロイ時に必要に応じて設定を変更するコードを追加することができます。
同様に、データベーススクリプト自体は、展開している環境に基づいて変更できます。 SQLCMD変数を使用して、SQLコードを動的に変更することができます(特に、3つおよび4つのパーツの名前付けリファレンスでデータベース名とサーバー名を変更できます。たとえば、devlinkserver.devdb.dbo.fooは、devlinkserverとdevdbの代わりにtestlnkserver.testdb.dbo.fooに変更できます) SQLCML変数を使用)。 @@ SERVER = 'somedevdbserver'
SET IF
:必要に応じてにあなたが展開している環境に基づいて変数の値を変更するために使用SQLCMDsスクリプトlinkserver = 'DevDBServer'
サーバ@@ IF = 'sometestserver'
SET:linkserver = 'testDBServer'
などを...要するに
は、できるだけ多くを保ちます構成はすべての環境で可能な限り同じです。上記のさまざまなテクニックを使用して、各環境で異なる必要があるパーツに必要な設定を動的に変更します。
出典
2012-04-29 05:16:52
TyT
ムービー予約システムを作成している場合は、SQL Serverのインスタンスをサーバーなどのどこかに置いて、すべてのクライアントアプリケーションがネットワーク経由でそのインスタンスを参照してはいけませんか?すべてのマシンにSQL Serverをインストールする必要はありません。 – Polynomial
新しくインストールされたマシンでSQLサービスが実行されていることを確認しましたか? –
ここからサーバー/インスタンス名はどこから取得していますか?設定ファイルは通常の方法です。データベースがどこにあるのかを知ることを除いて、コードには関係ありません。それは、あなたがやっていることを賢明に配備するための潜在的な他の問題があると言いました。 –