Я внедряю Tarantino Database Management в проект, который имеет совершенно новую схему базы данных. Единственное изменение (расположенное в 0001_InitialSchema.sql
) - это создание таблиц, используемых в членстве ASP.NET. Я сгенерировал таблицы с использованием aspnet_regsql.exe
, а затем написал их как сценарии CREATE TO, а затем объединил их в один файл Tarantino sql.
После запуска моего сценария сборки NAnt команда drop database
блокируется при попытке удалить все соединения из базы данных, которую она пытается сбросить.
Удаление соединений для базы данных DBName
[call] Исключительная ситуация при выполнении оператора или пакета Transact-SQL.
[вызов] Только пользовательские процессы могут быть убиты.
Это приводит к сбою следующего шага create database
, поскольку база данных все еще существует и новые обновления не будут применены:
ManageSqlDatabase:
Создать имя DBName на локальном хосте, используя сценарии из пути \ to \ source \ src \ Database
BUILD FAILED - 1 нефатальная ошибка (и), 0 предупреждение (я)
ВНУТРЕННЯЯ ОШИБКА
Microsoft.SqlServer.Management.Common.ExecutionFailureException: исключение произошло при выполнении оператора или пакета Transact-SQL. ---> System.Data.SqlClient.SqlException: база данных 'DBName' уже существует. Выберите другое имя базы данных.
Некоторые системные процессы всегда остаются подключенными к базе данных даже после запуска сценария. Я пытался запустить это на разных машинах, и та же проблема существует. Я также попытался запустить другой проект Tarantino, и он работает каждый раз безупречно. Я даже создал фиктивный файл обновления (который добавил таблицы Foo, Bar и т. Д.), Который также работал без проблем. Кажется, проблема связана с сценариями CREATE TABLE для таблиц членства ASP.NET.
Вы можете найти копию скрипта обновления SQL, запущенного в PasteBin (отделенного от поста из-за его длины).