en-US/about_PSDB.help.txt

TOPIC
    about_psdb
 
SHORT DESCRIPTION
    PSDB helps to ease the automation of Azure Sql export and import functions.
 
LONG DESCRIPTION
    PSDB is a PowerShell module which wrapps the operation of Azure Sql import
    and export and provides additional functionality to drive the import and
    export operation as you do in Azure.
    It comes with tab completion of resource groups, sql servers, storage
    accounts and key vaults to select the resources easily. Also there are two
    helper functions `Get-PSDBDatabaseData` and `Invoke-PSDBDatabaseQuery` which
    allows you to open database connection and perfom database operations. This
    module is created to automate end to end sql import, export and database operations.
    Additionaly you can create a `Connection String` with the function
    `New-PSDBConnectionString` with diffferent versions and parameters.
 
EXAMPLES
    PS C:\> Set-PSDBDefault -Subscription "mySubscription"
 
    PS C:\> Set-PSDBDefault -Subscription "mySubscription" -ResourceGroupName "RSG" -ServerName "SqlServer01" -DatabaseName "Database01"
 
    Calling Set-PSDBDefault function with above mentioned parameters allows you
    to set the passed parameters in the current context. This way you don't have
    to specify ResourceGroupname, ServerName and DatabaseName in Export, Import
    and other functions that require these parameters. You can simply call the
    function with other mandatory parameters and execute.
 
Export
    - Perform export operation. Let's take an example that you want to export
    database from development subscription and place the exported .bacpac file
    in test subscription's sstorage account you can do the following. If you are
    exporting and saving the bacpac in same subscription then it is not
    mandatory to pass value to -Subscription parameter.
 
    # Set the default values. Since you have to export the database from development lets set the context as development.
    PS C:\> Set-PSDBDefault -Subscription "development" -ResourceGroupName "RSG" -ServerName "SqlServer01" -DatabaseName "Database01"
     
    # Now that context is set; retrieve username and password for database from keyvault. You can also pass the username and password as is, refer cmdlet releated help by running help Export-PSDBSqlDatabase -Full to know more.
    PS C:\> $userName = Get-PSDBKVSecret -VaultName "myKeyVault" -SecretName "SQLUSERNAME" -AsPlainText
    PS C:\> $password = Get-PSDBKVSecret -VaultName "myKeyVault" -SecretName "SQLPASSWORD"
     
    # Now we have everything that we want to perform export operation. Pass the test subscription name and storage account details to export .bacpac file and save in the storage account.
    PS C:\> Export-PSDBSqlDatabase `
                -StorageAccountName "storageaccount01" `
                -StorageContainerName sqlbackups `
                -AdministratorLogin $userName `
                -AdministratorLoginPassword $password `
                -Subscription "test"
 
NOTE
    By default the bacpac will be saved in the format of
    DatabaseName-YY-MM-DD--HH-MM as it would in Azure portal. You can change
    this by passing BlobName parameter in export function and BacPacName while
    importing it.
 
TROUBLESHOOTING NOTE
    Make sure to set the correct subscription in current context before calling
    any function.
 
SEE ALSO
    Set-PSDBDefault
    Get-PSDBDatabaseData
    Invoke-PSDBDatabaseQuery
 
KEYWORDS
    Set-PSDBDefault