0

TortoiseSVN SQL スクリプト (コミットされたファイルのリストは既に存在します) の下でコミットされたものを自動的に実行したいと考えています。

私の考えでは:

Update コマンドが実行されると、次の処理を行うバッチ ファイルが実行されます。

  1. 追加/変更された *.sql ファイルのリストを取得します (おそらくそれらを一時ディレクトリにコピーします)
  2. sqlcmd を使用してこれらのファイルを実行します (ファイルが別のディレクトリにコピーされた場合、これは を使用して実行できますfor %f in (c:\MySQLScripts\*.sql) do sqlcmd -i %f) 。

そのようなフロー (同じ目標をターゲットとする他のフロー) の解決策はありますか?

4

1 に答える 1

0

数年前、私たちはあなたが提案していることを実行しようとしましたが、すべての依存関係(外部キーなど)が解決されるようにスクリプトの実行を調整することは、不可能ではないにしても、非常に複雑であることがわかりました。

ソース管理からデプロイするために、RedGate SQLソース管理(TortoiseSVNのようにSubversionと統合)とSQLCompareを使用することにしました。http://www.red-gate.com/をご覧ください。

別のアプローチは、Management Studioの「スクリプトの生成」機能を使用することです(オブジェクトエクスプローラーでデータベースを右クリックし、タスク->スクリプトを生成します)。すべてのデータベースオブジェクトを含む「マスタースクリプト」を作成します。このスクリプトをソース管理し、sqlcmdを使用して実行できます。このユーティリティが上記の依存関係をどれだけうまく管理しているかについては話せません。

于 2012-07-23T15:27:58.540 に答える