Mam istniejącą bazę danych ze wszystkim w schemacie dbo
. Mam projekt SSDT z obiektami, które dodaję do niego za pomocą schematufoo
Mam tabelę, która wygląda tak w tym projekcie:
CREATE table foo.a (
id INT NOT NULL
CONSTRAINT [PK_foo_a] PRIMARY KEY CLUSTERED
CONSTRAINT [FK_foo_a] FOREIGN KEY REFERENCES [dbo].[a],
desc NVARCHAR(50) NOT NULL
)
To zależy od dbo.a. dbo.a ma wiele kolumn, które są kluczami obcymi do innych kolumn. Ktoś inny (kto utrzymuje domyślny schemat) może zmienić dbo.a.
Chciałbym prosto przechowywać dbo.a jako:
CREATE table dbo.a (
id INT NOT NULL
CONSTRAINT [PK_a] PRIMARY KEY CLUSTERED
)
Więc jest budowany wewnętrznie, ale nie jest wdrażany. Czy to jest możliwe?
ssdt
deployment
Justin Dearing
źródło
źródło
Odpowiedzi:
Możesz użyć filtru wdrażania AgileSqlClub SqlPackage .
Skrócona instrukcja odtwarzane z oryginalnego artykułu przez Ed Elliott :
DLL
w tym samym folderze cosqlpackage.exe
Dodaj następujące parametry wiersza polecenia do swojego wdrożenia:
/p:AdditionalDeploymentContributors=AgileSqlClub.DeploymentFilterContributor
/p:AdditionalDeploymentContributorArguments="SqlPackageFilter=IgnoreSchema(BLAH)"
Nie spowoduje to wdrożenia, upuszczenia ani zmiany czegokolwiek w
BLAH
schemacie.Aby uzyskać szczegółowe informacje, zobacz oryginalny artykuł .
źródło
SSDT
Trudno zarządzać tylko częścią bazy danych . Jeśli nie było zależności, można po prostu zabronić upuszczania obiektów i nie włączać ich do projektu. Ponieważ istnieją zależności, ale nie chcesz nimi zarządzać, myślę, że będziesz musiał oszukać system.Przychodzi mi na myśl jedna metoda: nie mam możliwości jej teraz przetestować i użyłem tylko „podobnej” metody, a nie tej dokładnie.
Opcja 1:
Utwórz nowy projekt bazy danych
dbo.a
.Odwołaj się do tabeli z 3-częściową nazwą. W pierwszej części nazwy użyj zmiennej SQLCMD. Na przykład
[$(DatabaseName)].dbo.a.
Nigdy nie wdrażaj
foo
bazy danych.Za pomocą plików publikowania lub interfejsu cli zrównaj
$(DatabaseName)
nazwę z prawdziwą bazą danych.źródło
„Czystym” wbudowanym sposobem na to (od 2016 r.) Jest użycie zapisanego pliku porównania schematów. Możesz:
Więcej informacji tutaj: https://devblogs.microsoft.com/ssdt/schema-compare-in-sqlpackage-and-the-data-tier-application-framework-dacfx/
źródło