sqlpackage to świetne narzędzie do m.in. eksportu czy importu baz danych z serwerów Microsoft SQL Server (albo Azure).
Eksport
Przykładowy eksport (dane+schema):
sqlpackage /Action:Export \
/SSN:host.database.windows.net,1445 \
/SU:uzytkownik \
/SP:haslo \
/SDN:nazwa-bazy-na-serwie \
/TF:plik-kopii-zapasowej.bacpacPort możemy dodać po przecinku, tak jak w powyższym przykładzie.
Nazwy SSN, SU, SP itd. to skróty od pełnych nazw:
- SSN –
SourceServerName - SU –
SourceUser - SP –
SourcePassword - SDN –
SourceDatabaseName - TF –
TargetFile
Import
Import budujemy tak samo, tylko zamieniamy Source<->Target:
sqlpackage /Action:Import \
/TSN:host.database.windows.net,1445 \
/TU:uzytkownik \
/TP:haslo \
/TDN:nazwa-bazy-na-serwie \
/SF:plik-kopii-zapasowej.bacpacGdzie: TSN <=> TargetServerName itd…
Użyteczne przełączniki
Poniżej lista przełączników, które kiedyś mi się przydały:
/TargetTrustServerCertificate:[True|False] - pomijanie weryfikacji certyfikatu serwera docelowego (np. przy imporcie)
/SourceTrustServerCertificate:[True|False] - pomijanie weryfikacji certyfikatu serwera źródłowego (np. przy eksporcie)
/Diagnostics:[True|False] - włączenie szczegółowych logów
/DiagnosticsFile:<ścieżka> - włączenie szczegółowych logów, do pliku
/OutputPath:ściezka - definiuje, gdzie mają być wyplute pliki (domyślnie do katalogu roboczego)Instalacja
Instrukcje instalacji na różnych systemach/dystro:
ArchLinux
Narzędzie dostępne w AURze: https://aur.archlinux.org/packages/sqlpackage
dotnet (multiplatformowe)
Jako globalne narzędzie:
dotnet tool install -g microsoft.sqlpackageAktualizacja:
dotnet tool update -g microsoft.sqlpackageDodatkowe akcje
sqlpackage obsługuje jeszcze 5 dodatkowych akcji, których jeszcze nie używałem (zaktualizuję artykuł, jak mi się zdarzy):
- Extract – eksport samego schema, bez danych, plik dacpac
- Publish – inkrementalne aktualizowanie schema bazy danych bazując na pliku dacpac
- DeployReport – tworzy raport ze zmianami, które wdrożyłaby akcja „Publish”
- DriftReport – tworzy raport ze zmianami, które zostały wprowadzone od ostatniej „rejestracji” bazy
- Script – buduje skrypt, który inkrementalnie aktualizuje bazę danych do docelowego schema
Dokumentacja
Wszystkie akcje i przełączniki są opisane na MSDN.

