まったく新しいデータベース スキーマを持つプロジェクトに、Tarantino Database Management を導入しています。唯一の変更 ( にあります0001_InitialSchema.sql
) は、ASP.NET メンバーシップで使用されるテーブルの作成です。を使用してテーブルを生成し、aspnet_regsql.exe
それらを CREATE TO スクリプトとしてスクリプト化し、単一の Tarantino sql ファイルに結合しました。
NAnt ビルド スクリプトを実行するdrop database
と、削除しようとしているデータベースからすべての接続を削除しようとすると、コマンドがチョークします。
データベース DBName の接続を削除しています
[呼び出し] Transact-SQL ステートメントまたはバッチの実行中に例外が発生しました。
[call] ユーザー プロセスのみを強制終了できます。
これにより、create database
データベースがまだ存在し、新しい更新が適用されないため、次の手順が失敗します。
SQL データベースの管理:
path\to\source\src\Database のスクリプトを使用して、localhost に DBName を作成します。
BUILD FAILED - 致命的ではないエラー 1 件、警告 0 件
内部エラー
Microsoft.SqlServer.Management.Common.ExecutionFailureException: Transact-SQL ステートメントまたはバッチの実行中に例外が発生しました。---> System.Data.SqlClient.SqlException: データベース 'DBName' は既に存在します。別のデータベース名を選択してください。
スクリプトが実行された後も、一部のシステム プロセスは常にデータベースに接続されたままになります。これを別のマシンで実行しようとしましたが、同じ問題が存在します。また、別の Tarantino プロジェクトを実行してみましたが、毎回問題なく実行されます。ダミーの更新ファイル (テーブル Foo、Bar などを追加) も作成しましたが、これも問題なく実行されました。この問題は、ASP.NET メンバーシップ テーブルの CREATE TABLE スクリプトに起因しているようです。
PasteBin で実行された SQL 更新スクリプトのコピーを見つけることができます(長さのために投稿とは別になっています)。