Skip to content
/ PsSmo Public

The PowerShell SQL Client module replaces the SQL Server utilities SQLCMD with native PowerShell commands.

License

Notifications You must be signed in to change notification settings

abbgrade/PsSmo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PsSmo

The PowerShell SQL Client module replaces the SQL Server utilities SQLCMD with native PowerShell commands.

Installation

This module can be installed from PsGallery.

Install-Module -Name PsSmo -Scope CurrentUser

Alternatively it can be build and installed from source.

  1. Install the development dependencies
  2. Download or clone it from GitHub
  3. Run the installation task:
Invoke-Build Install

Usage

TODO

Execute SQLCMD scripts like those created by DacFX.

Commands

Command Description Status
Connect-Instance Create a new database connection.
Disconnect-Instance Close connection
Invoke-Command Execute SQLCMD scripts
⮱ Batch support Support GO statements
⮱ File support Script source from file
⮱ Variable support Support variables like $(variable)
⮱ :setvar support Support :setvar
⮱ SQLCMD command support Support SQLCMD commans like :on error
Uninstall-Schema Remove a database schema recursively

Changelog

See the changelog file.

Development

Status

.github/workflows/build-validation.yml

Build

The build scripts require InvokeBuild. If it is not installed, install it with the command Install-Module InvokeBuild -Scope CurrentUser.

You can build the module using the VS Code build task or with the command Invoke-Build Build.

Testing

The tests scripts are based on Pester. If it is not installed, install it with the command Install-Module -Name Pester -Force -SkipPublisherCheck. Some tests require a SQL Server. The test creates a SQL Server in a Docker container. If needed, install Docker. The container are created using PSDocker, which can be installed using Install-Module PSDocker -Scope CurrentUser.

For local testing use the VSCode test tasks or execute the test scripts directly or with Invoke-Pester. The InvokeBuild test tasks are for CI and do not generate console output.

Release

  1. Create a release branch using git-flow.
  2. Update the version number in the module manifest.
  3. Extend the changelog in this readme.
  4. If you want to create a pre-release.
    1. Push the release branch to github, to publish the pre-release to PsGallery.
  5. Finish release using git-flow.
  6. Check if tags are not pushed to github.
  7. Check if the release branch is deleted on github.
  8. Create the release on github.

About

The PowerShell SQL Client module replaces the SQL Server utilities SQLCMD with native PowerShell commands.

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project