Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
140 commits
Select commit Hold shift + click to select a range
9cc2abb
feat: Introduce CommandLineBuilderOptions for command-line options ma…
mmckechney Feb 13, 2026
e7a43f2
feat: Update SqlBuildRunData to use unique temporary file names for u…
mmckechney Feb 13, 2026
481f16f
feat: Refactor command-line options and update script calls for conta…
mmckechney Feb 13, 2026
b6bb247
Update command-line parsing in tests for System.CommandLine
mmckechney Feb 14, 2026
b529e6e
Add timeout to ACI test runs; fix batchquery customName
mmckechney Feb 14, 2026
9265a73
Disable K8s YAML tests and CLI createyaml command
mmckechney Feb 15, 2026
e7ac8a9
Refactor override file handling in ACI/K8s query commands
mmckechney Feb 16, 2026
10b4f26
Improve test output capture and container app CLI handling
mmckechney Feb 17, 2026
e3a64e4
Adjust logging levels, add tests, and improve env handling
mmckechney Feb 17, 2026
7b53a40
Add Copilot test result analysis to integration script
mmckechney Feb 17, 2026
afcf58b
Merge pull request #5 from mmckechney/feature/command_line_version
mmckechney Feb 17, 2026
c70ed93
Add ACI test runner for *.Dependent.UnitTest with SQL sidecar
mmckechney Feb 17, 2026
f4b56b1
Enhance authentication handling in unit tests and connection helpers …
mmckechney Feb 17, 2026
a0bbff1
updated script
mmckechney Feb 18, 2026
180b2a9
Merge branch 'master' of https://github.com/mmckechney/mmckechney-Sql…
mmckechney Feb 18, 2026
d600397
WIP
mmckechney Feb 18, 2026
90a3dd7
Merge from `master`
mmckechney Feb 18, 2026
21a7c28
Fix typo: ReleventLogFileContents -> RelevantLogFileContents
mmckechney Feb 18, 2026
0754d4c
Fixing test error that had auth args at the rootcommand level, before…
mmckechney Feb 18, 2026
03321f2
Add live test summary to ACI scripts; improve test paths
mmckechney Feb 18, 2026
99ba95b
Merge pull request #6 from mmckechney/feature/container_dependent_tests
mmckechney Feb 18, 2026
55405af
Enhance test summary display with elapsed time and console resize han…
mmckechney Feb 18, 2026
c7c9dde
Add PostgreSQL feature and test strategy design docs
mmckechney Feb 18, 2026
3dce35b
Add PostgreSQL support via cross-platform DB abstractions
mmckechney Feb 18, 2026
598fdc0
Update src/SqlSync.SqlBuild/Services/PostgresResourceProvider.cs
mmckechney Feb 18, 2026
a64efe3
Add PostgreSQL support documentation and update README
mmckechney Feb 18, 2026
e2ac4bc
Merge branch 'feature/postgreSQL' of https://github.com/mmckechney/mm…
mmckechney Feb 18, 2026
7ea2254
Add PostgreSQL support and related unit tests
mmckechney Feb 18, 2026
d771011
Refactor test summary output handling and improve elapsed time display
mmckechney Feb 18, 2026
a3c8199
Refactor PostgreSQL Unit Tests and Initialization Logic
mmckechney Feb 18, 2026
52f72a0
Refactor ACI test runner script and extract helper functions
mmckechney Feb 18, 2026
e43c738
Add PostgreSQL unit tests and resource files for threaded execution
mmckechney Feb 18, 2026
ac61446
Add PostgreSQL unit tests for script handling and execution scenarios
mmckechney Feb 18, 2026
edb208e
Improve test env config & automate blob result downloads
mmckechney Feb 18, 2026
3a5a841
Add integration tests and supporting files for PostgreSQL ACI and loc…
mmckechney Feb 18, 2026
1007004
Add integration tests for PostgreSQL: Batch, Container App, and Kuber…
mmckechney Feb 19, 2026
64afd47
Fix test assertion order, update output colors, suppress warnings
mmckechney Feb 19, 2026
2332bc1
Simplify TestContext property in unit tests
mmckechney Feb 19, 2026
749c789
Ensure correct resource sequencing for AAD admin and DBs
mmckechney Feb 19, 2026
979d24a
Remove unused package references from project files
mmckechney Feb 19, 2026
69779f3
Suppress CS0067 warnings for unused events in fakes
mmckechney Feb 19, 2026
24dd146
Move test warning suppression to .targets for reliability
mmckechney Feb 19, 2026
2c73534
Normalize line endings and improve test connection handling
mmckechney Feb 19, 2026
b6f7948
Refactor managed identity grants for Azure PG Flex Server
mmckechney Feb 19, 2026
9941abd
Improve cross-platform test helpers and file handling
mmckechney Feb 19, 2026
7603c4a
Add --platform option to more CLI commands, refactor auth args
mmckechney Feb 19, 2026
35a2a3e
Suppress progress output during temp dir cleanup
mmckechney Feb 19, 2026
e43a771
Add support for configurable database platform
mmckechney Feb 19, 2026
fad25be
Add IdentityName support for PG Entra ID authentication
mmckechney Feb 19, 2026
2e23dfe
Refactor temp file path creation for cross-platform safety
mmckechney Feb 19, 2026
a78970b
Prefer Entra ID admin for MI role creation in Postgres
mmckechney Feb 19, 2026
b317229
Merge branch 'feature/postgreSQL' into bugfix/dependent_container_tests
mmckechney Feb 19, 2026
22f598c
Merge pull request #8 from mmckechney/bugfix/dependent_container_tests
mmckechney Feb 19, 2026
2701dfd
Disable MFA for managed identity role creation
mmckechney Feb 19, 2026
92681d2
Merge branch 'feature/postgreSQL' of https://github.com/mmckechney/mm…
mmckechney Feb 19, 2026
9989960
Refactor for DB platform abstraction & DI in orchestration
mmckechney Feb 19, 2026
18e085d
Add BooleanTrueLiteral to IScriptSyntaxProvider and use it
mmckechney Feb 19, 2026
ac9023b
Refactor test infra: add shared helpers, reorganize solution
mmckechney Feb 19, 2026
8d7e14b
Improve taskId selection and CLI arg handling for logs
mmckechney Feb 19, 2026
029d631
Merge branch 'feature/postgreSQL' into feature/consolidated_test_inits
mmckechney Feb 19, 2026
5b8a9cb
Standardize file copy logic, add IdentityName support
mmckechney Feb 19, 2026
346fa1a
Merge pull request #9 from mmckechney/feature/consolidated_test_inits
mmckechney Feb 19, 2026
0098339
Merge branch 'feature/postgreSQL' of https://github.com/mmckechney/mm…
mmckechney Feb 19, 2026
f518d47
Refactor dependent test image build into new script
mmckechney Feb 19, 2026
0e3fe2f
Update AKS scripts and blob upload logic
mmckechney Feb 19, 2026
589aee6
Merge branch 'feature/postgreSQL' of https://github.com/mmckechney/mm…
mmckechney Feb 19, 2026
259120a
Add PostgreSQL external test execution to ACI script
mmckechney Feb 19, 2026
f54992b
Enhance ACI test scripts with image name and filter parameters; switc…
mmckechney Feb 20, 2026
127c028
Merge branch 'feature/postgreSQL' of https://github.com/mmckechney/mm…
mmckechney Feb 20, 2026
fe5657a
Refactor ACI test scripts to use Write-Debug for logging; add Clear-H…
mmckechney Feb 20, 2026
a98b2f6
Refactor PostgreSQL server configurations to support multiple servers…
mmckechney Feb 20, 2026
ab6b6f1
Merge branch 'feature/postgreSQL' of https://github.com/mmckechney/mm…
mmckechney Feb 20, 2026
7101c0c
Add --overwrite option to blob download command and clear host in tes…
mmckechney Feb 20, 2026
d7202eb
Enhance PostgreSQL support in test scripts and Dockerfile; add enviro…
mmckechney Feb 20, 2026
ecd7457
Fix casing in resource file paths and update app.config reference in …
mmckechney Feb 20, 2026
15a820d
Refactor path handling for cross-platform compatibility in various fi…
mmckechney Feb 21, 2026
a31d6b0
Add copilot command for test result analysis and documentation in ACI…
mmckechney Feb 21, 2026
2289621
Enhance test result analysis in ACI script by integrating GitHub Copi…
mmckechney Feb 21, 2026
37a75c2
Refactor GitHub Copilot CLI integration in test scripts for improved …
mmckechney Feb 21, 2026
1ae88f8
Fix all CS8* nullable reference type warnings in 8 target files
mmckechney Feb 21, 2026
9a9c183
Merge pull request #7 from mmckechney/feature/postgreSQL
mmckechney Feb 21, 2026
5b2d51d
fixing null warnings
mmckechney Feb 21, 2026
e90d296
Fix nullable reference type warnings by removing null-forgiving opera…
mmckechney Feb 21, 2026
7f1d5ed
Fix nullable reference type warnings by updating properties and assig…
mmckechney Feb 21, 2026
81907ee
Fix remaining nullable warnings: DatabaseOverride.Server, ScriptUpdat…
mmckechney Feb 21, 2026
f9c4a67
Fix nullable reference type warnings in scripts and unit tests by upd…
mmckechney Feb 22, 2026
5ff230f
Fix nullable reference type warnings by adding cancellation token sup…
mmckechney Feb 22, 2026
79f9c43
adding row locking and timeout to SqlBuild_Logging cleanup queries
mmckechney Feb 22, 2026
d302038
Add support for QueryFile property in ToArgs method to handle batch mode
mmckechney Feb 22, 2026
6471432
Update PostgresTransactionManager by ensuring command properties are …
mmckechney Feb 22, 2026
b47cfac
adding datestamp to organize tests
mmckechney Feb 22, 2026
3e4ea2c
Refactor test execution logic to dynamically select test DLL based on…
mmckechney Feb 22, 2026
f1f50f8
Add support for OutputFile property in ToArgs method for batch mode h…
mmckechney Feb 22, 2026
f06df08
Fixes: warning CS0618: 'NpgsqlConnectionStringBuilder.TrustServerCert…
mmckechney Feb 22, 2026
0df5950
Removing obsolete DacPacHelper.GetSbmFromDacPac method, replaced buy …
mmckechney Feb 22, 2026
03eebd5
Update BatchTests to use 'query' instead of 'run' for data row
mmckechney Feb 22, 2026
15e9b29
Merge pull request #10 from mmckechney/feature/null_warning_fixes
mmckechney Feb 22, 2026
4c5c0b7
Update for v16.0.0: PostgreSQL, kubectl, CLI options
mmckechney Feb 23, 2026
49e0392
Add PostgreSQL docs, refactor plan, and clean warnings
mmckechney Feb 23, 2026
26fd3e5
Merge pull request #11 from mmckechney/bugfix/cleanup
mmckechney Feb 23, 2026
4b50986
Enhance logging and error handling across multiple components, includ…
mmckechney Feb 24, 2026
eb7a6ad
Rename scripts and running container images, including integration te…
mmckechney Feb 24, 2026
ade1a00
Updating docs
mmckechney Feb 24, 2026
d42788e
Update assembly copyright year and remove unnecessary DeploymentItem …
mmckechney Feb 24, 2026
0fd9f51
Enhance logging in MatchServersToFixedBucket test for better clarity …
mmckechney Feb 24, 2026
4871e6d
Reduce script timeout in TestDatabaseConnectionTest for quicker failu…
mmckechney Feb 24, 2026
ccf6f44
Add platform checks in unit tests and logging for non-Windows environ…
mmckechney Feb 24, 2026
189229d
Update blob download commands in test scripts to include timestamp fi…
mmckechney Feb 24, 2026
72763a9
Merge pull request #12 from mmckechney/enhancement/unit_test_logs_and…
mmckechney Feb 24, 2026
e94e514
Refactor KeyVaultHelper to skip secret retrieval if no Key Vault name…
mmckechney Feb 24, 2026
85dc2ea
Update NuGet package versions across all projects
mmckechney Feb 24, 2026
8e9149f
Refactor test result analysis scripts to use a prompt template for Gi…
mmckechney Feb 25, 2026
dd10fc0
Enhance unit tests by optimizing KeyVault secret retrieval and adjust…
mmckechney Feb 25, 2026
dd4bd77
Refactor logging in validation method to use Debug level and update t…
mmckechney Feb 25, 2026
9de6149
Update Microsoft.Extensions.Logging package to version 10.0.3
mmckechney Feb 25, 2026
955442b
Merge pull request #13 from mmckechney/enhancement/unit_test_cleanup
mmckechney Feb 25, 2026
69c30de
Add unit tests for SqlBuildHelper and DefaultBuild services
mmckechney Feb 25, 2026
556d6ab
Add unit tests for ProcessBuildAsync and update HandleSqlException vi…
mmckechney Feb 25, 2026
9001c6f
Add unit tests for SqlServer and Postgres syntax and transaction mana…
mmckechney Feb 25, 2026
b4e89cf
Enhance error handling in blob download command and add unit tests fo…
mmckechney Feb 25, 2026
cf166b9
Add BlobLogValidator and enhance logging validation in test cases for…
mmckechney Feb 26, 2026
3be3d41
Enhance BlobLogValidator usage in ACI, Batch, Container App, and Kube…
mmckechney Feb 26, 2026
830f98e
Refactor command line argument handling to use named parameters for i…
mmckechney Feb 26, 2026
b410439
Refactor tests to use async/await pattern for blob log validation
mmckechney Feb 26, 2026
180b231
Enhance logging in AssertBuildSuccess method to include success and f…
mmckechney Feb 26, 2026
a714395
Enhance BlobLogValidator and StorageManager for improved logging and …
mmckechney Feb 26, 2026
44124ee
Enhance cleanup scripts to run in parallel for improved performance a…
mmckechney Feb 26, 2026
44afbce
Enhance ACI test scripts and validation to include PostgreSQL ACI nam…
mmckechney Feb 26, 2026
b9fbf2e
Add visual diagrams for threaded build process and enhance deployment…
mmckechney Feb 27, 2026
48cbe0f
Remove outdated documentation files for threaded build process flow a…
mmckechney Feb 27, 2026
72565f4
Add --no-logs option to build commands in test image scripts for clea…
mmckechney Feb 27, 2026
9f2411b
Enhance ACI test scripts to load AZD deployment configuration and imp…
mmckechney Feb 27, 2026
33aa0a3
Fix typos and improve clarity in CHANGELOG for version 16.0.0
mmckechney Feb 27, 2026
d77b17c
Update logging levels and improve clarity in QueueManager and ArmHelp…
mmckechney Feb 27, 2026
bc663b6
Enhance test output analysis documentation and improve assertions in …
mmckechney Feb 27, 2026
580db64
Merge pull request #14 from mmckechney/testing/core_build_enhancements
mmckechney Mar 20, 2026
df70400
Updating documentation
mmckechney Mar 20, 2026
e05d492
Merge pull request #15 from mmckechney/enhancement/update_docs
mmckechney Mar 20, 2026
05d744c
Add Azurite configuration files to .gitignore
mmckechney Mar 20, 2026
dd2c88f
Update NuGet package versions across all projects
mmckechney Mar 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
47 changes: 39 additions & 8 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,27 @@ dotnet publish ./src/SqlBuildManager.Console/sbm.csproj -r linux-x64 --configura

### Test Types
- `*.UnitTest.csproj` - True unit tests with no external dependencies
- `*.Dependent.UnitTest.csproj` - Require local SQL Express; run `SqlSync.SqlBuild.Dependent.UnitTest` first on new machines to create databases
- `SqlBuildManager.Console.ExternalTest` - Integration tests requiring Azure resources (run `scripts/templates/create_azure_resources.ps1` first)
- `*.Dependent.UnitTest.csproj` - Require local SQL Express (SQL Server) or local PostgreSQL; run `SqlSync.SqlBuild.Dependent.UnitTest` first on new machines to create databases
- `*.Dependent.PostgreSQL.UnitTest.csproj` - PostgreSQL-specific dependent tests (require PostgreSQL instance)
- `SqlBuildManager.Console.ExternalTest` - Integration tests for SQL Server requiring Azure resources (run `azd up` first to provision resources)
- `SqlBuildManager.Console.PostgreSQL.ExternalTest` - Integration tests for PostgreSQL requiring Azure resources
- External tests run in ACI containers via `scripts/tests/run_all_external_tests_in_aci.ps1` using `src/Dockerfile.tests`

## Architecture Overview

### Database Platform Support
The application supports two database platforms, selected via `--platform` CLI option:
- **SqlServer** (default)
- **PostgreSQL**

Platform abstraction uses interfaces with per-platform implementations:
- `IDbConnectionFactory` → `SqlServerConnectionFactory` / `PostgresConnectionFactory`
- `ITransactionManager` → `SqlServerTransactionManager` / `PostgresTransactionManager`
- `IScriptSyntaxProvider` → `SqlServerSyntaxProvider` / `PostgresSyntaxProvider`
- `ISqlResourceProvider` → `SqlServerResourceProvider` / `PostgresResourceProvider`

Platform is propagated via `ConnectionData.DatabasePlatform` (set from `cmdLine.AuthenticationArgs.DatabasePlatform`).

### Project Layers
```
SqlBuildManager.Console (sbm.csproj) ← Entry point, CLI
Expand All @@ -39,14 +55,14 @@ SqlBuildManager.Logging ← Serilog-based logging
SqlBuildManager.Interfaces ← Shared interfaces
SqlSync.SqlBuild ← Core build/package logic
SqlSync.Connection ← Database connections
SqlSync.Connection ← Database connections (SqlServer + PostgreSQL)
SqlSync.DbInformation ← Database metadata
SqlSync.ObjectScript ← SQL object scripting
SqlSync.Constants ← Shared constants
```

### Console Application Pattern
The CLI uses **System.CommandLine** (beta 4) with .NET Generic Host:
The CLI uses **System.CommandLine** (v2.0.3) with .NET Generic Host:

- **Program.cs** - Configures `IHostBuilder` with DI, logging, and `Worker` as `IHostedService`
- **Worker.cs** - Invokes the command parser and routes to handler methods
Expand Down Expand Up @@ -87,10 +103,25 @@ public BatchArgs BatchArgs { get; set; }
### Settings File Pattern
Configuration can be saved to encrypted JSON settings files using `--settingsfile` and `--settingsfilekey`. Sensitive data is AES-256 encrypted or stored in Azure Key Vault.

### Batch Command Line Serialization
`CommandLineArgs` is serialized to a command string via `ToBatchString()` → `Extensions.ToStringExtension(StringType.Batch)`. `FileInfo` properties (`QueryFile`, `OutputFile`) require special handling in batch mode because `FileInfo.FullName` resolves relative paths against the orchestrator's CWD, producing invalid paths on batch nodes. Use `file.Name` (filename only) or `file.ToString()` (original path) instead of `file.FullName` for batch serialization.

## Docker / Container Images

- `src/Dockerfile` - Production runtime image (self-contained .NET 10.0)
- `src/Dockerfile.tests` - Integration test runner image (Azure CLI, kubectl); used by `scripts/tests/run_tests_in_aci.ps1`
- `src/Dockerfile.dependent-tests` - Dependent unit test image with SQL Server/PostgreSQL sidecars
- `src/Dockerfile-Windows` - Windows variant of the production image

## Infrastructure Provisioning

Azure resources can be provisioned two ways:
1. **Azure Developer CLI**: `azd up` (uses `infra/` Bicep templates)
2. **PowerShell scripts**: `scripts/templates/create_azure_resources.ps1`
Azure resources can be provisioned via the Azure Developer CLI:
1. **Azure Developer CLI**: `azd up` (uses `infra/` Bicep templates, including `infra/modules/postgresql.bicep`)

This creates: Storage Account, Service Bus, Event Hub, Key Vault, Managed Identity, and optionally Batch/AKS/Container Apps/ACR/SQL databases/PostgreSQL databases.

Both create: Storage Account, Service Bus, Event Hub, Key Vault, Managed Identity, and optionally Batch/AKS/Container Apps/ACR/SQL databases.
### Database Setup Scripts
- `scripts/Database/create_database_override_files.ps1` - SQL Server override configs
- `scripts/Database/create_pg_database_override_files.ps1` - PostgreSQL override configs
- `scripts/Database/grant_identity_permissions.ps1` - Grant managed identity access to SQL Server databases
- `scripts/Database/grant_pg_identity_permissions.ps1` - Grant managed identity access to PostgreSQL databases
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ local.properties
.vs/
.vscode/
launchsettings.json
*.testlog

# Build results

Expand Down Expand Up @@ -226,3 +227,6 @@ Command_scratch.txt
/src/SqlBuildManager.Console/ContainerApp/parms2.json
src/env.txt
/scripts/templates/test.ps1
ACI_Queue_PG_DoubleDbConfig_SBMSource_Success-639077055111877999.testlog
__azurite_db_table__.json
AzuriteConfig
11 changes: 11 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,16 @@
# SQL Build Manager Change Log

### [Version 16.0.0](https://github.com/mmckechney/SqlBuildManager/releases/tag/v16.0.0)
- *NEW:* Major updated to support PostgreSQL database in addition to SQL Server
- *NEW:* Added new scripts [/scripts/tests](scripts/tests) to run all unit tests, local integration tests and external (Azure targeted) tests in Azure Container Instance Linux containers. There area additional new scripts in [scripts/ContainerRegistry](scripts/ContainerRegistry) to build two new containers (one for Unit and Local tests and one for External tests). The underlying tests were updated to run on both Linux and Windows.
- *NEW:* Test/Demo environment fully deployable with [Azure Developer CLI](https://learn.microsoft.com/en-us/azure/developer/azure-developer-cli/) via `azd up`. In first run you will be prompted with what type of compute and database platforms you want to deploy (or all!). You can add more later by modifying the `DEPLOY_*` environment variable in the `.azure\<env name>\.env` file
- *NEW:* Full end-to-end Managed Identity support. Solution no longer requires and keys or connection strings. Test environment bicep and scripts demonstrates both the infrastructure deployment and the database permissions and RBAC role settings
- **DEPRECATED:** The `SQL Build Manager.exe` windows app has been deprecated and is no longer part of this project. If you need to use it, please use the last release version `15.6.2`. The projects created via the Windows app are compatible with the newly enhanced console app
- *UPDATED:* Significant code modernization away from ADO.NET objects as well as refactoring and decomposition of the build process and interface implementations.
- *UPDATED:* Performance improvements and broader use of async pattern for better resource management during runs


-
### [Version 15.6.2](https://github.com/mmckechney/SqlBuildManager/releases/tag/v15.6.2)
- *UPDATED:* Specifying Batch Node Communication model as `Simplified` (vs. prior default of `Classic`) as [classic is getting retired in 2026](https://azure.microsoft.com/en-us/updates/azure-batch-classic-compute-node-communication-model-will-be-retired-on-31-march-2026/)
- *FIXED:* [GitHub Issue #501](https://github.com/mmckechney/SqlBuildManager/issues/501) - DeleteBatchPool settingsfile setting not honored for batch run commands / logging issue with --deletebatchpool override
Expand Down
61 changes: 43 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,28 @@
# SQL Build Manager

SQL Build Manager is a multi-faceted tool to allow you to manage the life-cycle of your databases. It provides a comprehensive set of command line options for the management from one to many thousands of databases.
SQL Build Manager is a multi-faceted tool to allow you to manage the life-cycle of your databases (both SQL Server and PostgreSQL). It provides a comprehensive set of command line options for the management from one to many thousands of databases.

![.NET Core Build](https://github.com/mmckechney/SqlBuildManager/workflows/.NET%20Core%20Build/badge.svg)


**Kubernetes and ACI breaking changes in 15.0, be sure to review the change log**

#### _Be sure to review the [change log](CHANGELOG.md) for the latest updates, enhancements and bug fixes_


---
### **Highlighted feature update, v16+: PostgreSQL Support**

SQL Build Manager now supports **PostgreSQL** as an alternative database target alongside Microsoft SQL Server. Use `--platform PostgreSQL` in any build command to target PostgreSQL databases. See the [PostgreSQL documentation](docs/postgresql.md) for full details.

Features **not yet available** for PostgreSQL:
- DACPAC operations (extract, compare, `create fromdacpacs` / `create fromdacpacdiff`)
- Object scripting (SMO-based)
- Some SQL Server-specific script policies (`WithNoLockPolicy`, `QualifiedNamesPolicy`)

---

**Kubernetes and ACI breaking changes in 15.0, be sure to review the change log**

---
### **Key feature enhancement with Version 14.4+: Expanded use of Azure User Assigned Managed Identity**

Expand All @@ -18,22 +32,32 @@ With this update, it significantly reduces the the need to save and manage secre

## Contents

- [Important Concepts!](#important-concepts)
- [Key Features - Why use SQL Build Manager?](#key-features)
- [Running builds](#running-builds-command-line)
- [Querying across databases](#querying-across-databases-command-line)
- [Runtime Process Flow](docs/threaded_build_process_flow.md)
- [Command Line Reference/ Quickstart](docs/commandline.md)
- [Running Locally](docs/local_build.md)
- [Massively Parallel Database Builds](docs/massively_parallel.md)
- [Azure Container Apps](docs/containerapp.md)
- [Azure Batch](docs/azure_batch.md)
- [Kubernetes](docs/kubernetes.md)
- [Azure Container Instances (ACI)](docs/aci.md)
- [Change log](CHANGELOG.md)
- For contributors: [Notes on Building and Unit Testing](docs/setup_azure_environment.md)
- For users of the Windows Form app: [SQL Build Manager Manual](docs/SqlBuildManagerManual.md)\
(Note: this isn't 100% up to date, so the screen shots may vary from the current app)

- [SQL Build Manager](#sql-build-manager)
- [_Be sure to review the change log for the latest updates, enhancements and bug fixes_](#be-sure-to-review-the-change-log-for-the-latest-updates-enhancements-and-bug-fixes)
- [**Highlighted feature update, v16+: PostgreSQL Support**](#highlighted-feature-update-v16-postgresql-support)
- [**Key feature enhancement with Version 14.4+: Expanded use of Azure User Assigned Managed Identity**](#key-feature-enhancement-with-version-144-expanded-use-of-azure-user-assigned-managed-identity)
- [Contents](#contents)
- [Important Concepts](#important-concepts)
- [**"Build"**](#build)
- [**"Package"**](#package)
- [**"Override" file**](#override-file)
- [**Remote Build Execution**](#remote-build-execution)
- [**"Settings" file**](#settings-file)
- [**"jobname"**](#jobname)
- [Key Features](#key-features)
- [Running Builds (command line)](#running-builds-command-line)
- [**Local**](#local)
- [**Threaded**](#threaded)
- [**Batch**](#batch)
- [**Azure Container Apps**](#azure-container-apps)
- [**Kubernetes**](#kubernetes)
- [**Azure Container Instance (ACI)**](#azure-container-instance-aci)
- [Querying across databases (command line)](#querying-across-databases-command-line)
- [Threaded](#threaded-1)
- [Batch, Kubernetes and ACI](#batch-kubernetes-and-aci)
- [Command Line Reference](docs/commandline.md) - Full command reference with runtime options
- [Detailed Process Flow](docs/threaded_build_process_flow.md)

---

Expand Down Expand Up @@ -70,6 +94,7 @@ The name of a build. This is used as the name or name prefix for all of the Azur
## Key Features

- Packaging of all of your update scripts and runtime meta-data into a single .sbm (zip file) or leverage data-tier application ([DACPAC](https://docs.microsoft.com/en-us/sql/relational-databases/data-tier-applications/deploy-a-data-tier-application)) deployment across your entire database fleet.
- **Supports both Microsoft SQL Server and PostgreSQL** — select the target platform at runtime with `--platform SqlServer` or `--platform PostgreSQL`
- Massively parallel execution across thousands of databases utilizing local threading or an [Azure Batch, Kubernetes, Container Apps or Container Instance remote execution](docs/massively_parallel.md)
- Single transaction handling. If any one script fails, the entire package is rolled back, leaving the database unchanged.
- Handle multiple database updates in one package - seamlessly update all your databases with local threading or massively parallel remote processing.
Expand Down
Loading
Loading