Как обработать недостающую базу данных членства ASP для развертывания / проверки? - PullRequest
0 голосов
/ 25 марта 2012

У меня есть приложение ASP MVC 3, использующее SQL Server 2012 LocalDB. Я не передавал базу данных членства aspnetdb.mdf в систему управления версиями (Mercurial), поэтому при извлечении или развертывании проекта на новом компьютере я получаю следующую ошибку:

Не удалось найти хранимую процедуру 'dbo.aspnet_CheckSchemaVersion'.

Я бы предпочел не запускать aspnet_regsql на каждой машине. Есть ли способ, которым я могу воссоздать отсутствующую базу данных членства из кода в Global.asax? В противном случае безопасно ли фиксировать исходную базу данных (.mdf или скрипт в .sql), созданную aspnet_regsql, в систему управления версиями и развертывать ее на всех машинах?

1 Ответ

2 голосов
/ 25 марта 2012

Невозможно создать его из .NET, поэтому я просто создал базу данных по умолчанию для членства:

"%WINDIR%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regsql.exe" -E -S (localdb)\v11.0 -d aspnetdb -A mr

Это создаст aspnetdb.mdf в C:\Users\USERNAME.Затем я скопировал это в папку развертывания в своем решении и добавил в систему управления версиями.Последним шагом было добавление события сборки в мой веб-проект, который скопирует базу данных, если она не существует.

if not exist ("$(ProjectDir)App_Data\aspnetdb.mdf") copy "$(SolutionDir)_Deployment\aspnetdb.mdf" "$(ProjectDir)App_Data"
...