Как создать базу данных с использованием базы данных проекта в Visual Studio, если не существует? - PullRequest
0 голосов
/ 02 апреля 2019

У меня есть проект базы данных для моего личного проекта, и я пытаюсь развернуть свой код на моем сервере DEV. Я часто удаляю и воссоздаю свой DEV сервер. Прямо сейчас DEV Server создается с помощью SQL Server. Каждый раз, когда я хочу развернуть свой код, мне приходится вручную создавать проект базы данных, а затем публиковать проект базы данных. Я хочу автоматизировать создание базы данных с развертыванием проекта базы данных.

Сейчас у меня есть скрипт, который создает базу данных, но я должен выполнить его вручную. И это работает отлично, но я также хочу автоматизировать этот шаг.

Это вообще возможно? Если да, то как? Пожалуйста, объясните шаг за шагом. И что мы будем упоминать для Начального каталога в строке подключения?

Edit: Я пытался создать базу данных с помощью

CREATE DATABASE LocalDbTest

в сценарии перед развертыванием. Но это не сработало. Это создает базу данных, но затем таблицы не получают созданные таблицы под ней. Поскольку я использовал базу данных master в качестве базы данных по умолчанию, она создает таблицу под master. Он не позволяет мне выбрать LocalDbTest базу данных по умолчанию, потому что она еще не создана, поэтому я должен выбрать Master в качестве базы данных по умолчанию. Я пытался изменить базу данных:

USE LocalDbTest
GO

Я использовал его сразу после создания базы данных, но это не сработало, потому что при создании скрипта он возвращается к базе данных по умолчанию. Эта часть появляется автоматически при создании сценария.

USE [$(DatabaseName)];
GO

Также Visual Studio не позволяет мне добавлять имя базы данных перед именем таблицы, например:

CREATE TABLE [LocalDbTest].[dbo].[TestTable]

Я получаю ошибку:

When you create an object of this type in a database project, the object's name must contain no more than two parts.

1 Ответ

1 голос
/ 04 апреля 2019

Если у вас есть готовый скрипт для создания базы данных, вы можете использовать событие Pre-build для вызова SQLCMD и запуска вашего скрипта.

Edit: Если у вас возникли проблемы с указанием на несуществующую базу данных, возможно, вам придется вручную отредактировать профиль публикации (например, dev.publish.xml) и явно указать элемент TargetDatabaseName. Вы также можете установить для элемента CreateNewDatabase значение True, если хотите создавать его заново при каждой публикации.

Ответ: Вы можете использовать профиль публикации и жестко закодировать в нем целевую базу данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...