-
Notifications
You must be signed in to change notification settings - Fork 30
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Update Classes.ps1 (#45) - Replace `New-Object` with the `::new()` method on the type. * Updated Mysql.data.dll version and related dependencies (#63) * version summary updates * Fixing .Prepare error duing BulkCopy for MySql provider * moved .Prepare() to after parameters have been added. * Removed Add-Type for google dll in MySql provider, unnecessary. Co-authored-by: Joseph Alcorn <[email protected]> Co-authored-by: Shawn Sesna <[email protected]>
- Loading branch information
1 parent
cd7e5b9
commit 2dabd77
Showing
14 changed files
with
247 additions
and
244 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,108 +1,109 @@ | ||
#Load Up My Sql libraries | ||
Add-Type -Path "$PSScriptRoot\MySql.Data.dll" | ||
|
||
#Provider Class | ||
. "$PSScriptRoot\provider.ps1" | ||
|
||
#Open Cmdlet | ||
Function Open-MySqlConnection { | ||
<# | ||
.Synopsis | ||
Open a connection to a MySql Database. | ||
.Description | ||
Open a connection to a MySql Database. | ||
MySql (MySql.Data) | ||
MySql Managed Data Access @ https://dev.mysql.com/downloads/ | ||
.NET Provider @ https://www.nuget.org/packages/mysql.Data/6.9.9 | ||
.Parameter ConnectionName | ||
The name to associate with the newly created connection. | ||
This connection will be used with other cmdlets when specifying | ||
-ConnectionName <name>. If you don't specify one, it will be | ||
set to the default. | ||
.Parameter ConnectionString | ||
Specifies a provider specific connectionstring to be used. | ||
.Parameter CommandTimeout | ||
The default command timeout to be used for all commands executed against this connection. | ||
.Parameter Server | ||
The Server for the connection. | ||
.Parameter Database | ||
Database name. | ||
.Parameter Port | ||
Port to connect on, if different from default (3306). | ||
.Parameter UserName | ||
User to authenticate as. (deprecated, use -Credential) | ||
.Parameter Password | ||
Password for the user. (deprecated, use -Credential) | ||
.Parameter SSLMode | ||
None: Do not use SSL. | ||
Required: Always use SSL. Deny connection if server does not support SSL. Do not perform server certificate validation. | ||
VerifyCA: Always use SSL. Validate server SSL certificate, but different host name mismatch. | ||
VerifyFull: Always use SSL and perform full certificate validation. | ||
#> | ||
[CmdletBinding(DefaultParameterSetName="default")] | ||
Param([Parameter(ValueFromPipelineByPropertyName)][Alias("cn")][string]$ConnectionName = "default" | ||
, [Parameter(ValueFromPipelineByPropertyName)][int]$CommandTimeout = 30 | ||
, [Parameter(ValueFromPipelineByPropertyName, ParameterSetName="default", Position=0)] | ||
[Parameter(ValueFromPipelineByPropertyName, ParameterSetName="userpass", Position=0)][string]$Server = "localhost" | ||
, [Parameter(ValueFromPipelineByPropertyName, ParameterSetName="default", Position=1)] | ||
[Parameter(ValueFromPipelineByPropertyName, ParameterSetName="userpass", Position=1)][string]$Database = "mysql" | ||
, [Parameter(ValueFromPipelineByPropertyName, ParameterSetName="default")] | ||
[Parameter(ValueFromPipelineByPropertyName, ParameterSetName="userpass")][int]$Port = 3306 | ||
, [Parameter(Mandatory, ValueFromPipelineByPropertyName, ParameterSetName="default")][pscredential]$Credential | ||
, [Parameter(Mandatory, ValueFromPipelineByPropertyName, ParameterSetName="userpass")][string]$UserName | ||
, [Parameter(Mandatory, ValueFromPipelineByPropertyName, ParameterSetName="userpass")][string]$Password | ||
, [Parameter(ValueFromPipeline, ParameterSetName="default")] | ||
[Parameter(ValueFromPipeline, ParameterSetName="userpass")] | ||
[ValidateSet("None","Required","VerifyCA","VerifyFull")][string]$SSLMode = "None" | ||
, [Parameter(Mandatory, ValueFromPipelineByPropertyName, ParameterSetName="Conn")][string]$ConnectionString) | ||
|
||
If($Script:Connections.ContainsKey($ConnectionName)) { Close-SqlConnection $ConnectionName } | ||
|
||
$sb = [MySql.Data.MySqlClient.MySqlConnectionStringBuilder]::new() | ||
|
||
If($PSCmdlet.ParameterSetName -eq "Conn") { $conn = [MySql.Data.MySqlClient.MySqlConnection]::new($ConnectionString) } | ||
Else { | ||
$sb.Server = $Server | ||
$sb.Database = $Database | ||
If($Port) { $sb.Port = $Port } | ||
If($Credential) { | ||
$sb.UserID = $Credential.UserName | ||
$sb.Password = $Credential.GetNetworkCredential().Password | ||
} | ||
Else { | ||
Write-Warning "You are using -UserName and -Password, these options are deprecated and will be removed in the future. Please consider using -Credential." | ||
$sb.UserId = $UserName | ||
$sb.Password = $Password | ||
} | ||
|
||
$sb.UseAffectedRows = $true | ||
$sb.AllowUserVariables = $true | ||
$sb.SslMode = $SSLMode | ||
|
||
$conn = [MySql.Data.MySqlClient.MySqlConnection]::new($sb.ConnectionString) | ||
$sb.Clear() | ||
$sb = $null | ||
Remove-Variable sb | ||
} | ||
|
||
Try { $conn.Open() } | ||
Catch { | ||
$conn.Dispose() | ||
Throw $_ | ||
} | ||
$Script:Connections.$ConnectionName = [MySqlProvider]::new($ConnectionName, $CommandTimeout, $conn) | ||
} | ||
|
||
#Load Up My Sql libraries | ||
|
||
Add-Type -Path "$PSScriptRoot\MySql.Data.dll" | ||
|
||
#Provider Class | ||
. "$PSScriptRoot\provider.ps1" | ||
|
||
#Open Cmdlet | ||
Function Open-MySqlConnection { | ||
<# | ||
.Synopsis | ||
Open a connection to a MySql Database. | ||
.Description | ||
Open a connection to a MySql Database. | ||
MySql (MySql.Data) | ||
MySql Managed Data Access @ https://dev.mysql.com/downloads/ | ||
.NET Provider @ https://www.nuget.org/packages/mysql.Data/6.9.9 | ||
.Parameter ConnectionName | ||
The name to associate with the newly created connection. | ||
This connection will be used with other cmdlets when specifying | ||
-ConnectionName <name>. If you don't specify one, it will be | ||
set to the default. | ||
.Parameter ConnectionString | ||
Specifies a provider specific connectionstring to be used. | ||
.Parameter CommandTimeout | ||
The default command timeout to be used for all commands executed against this connection. | ||
.Parameter Server | ||
The Server for the connection. | ||
.Parameter Database | ||
Database name. | ||
.Parameter Port | ||
Port to connect on, if different from default (3306). | ||
.Parameter UserName | ||
User to authenticate as. (deprecated, use -Credential) | ||
.Parameter Password | ||
Password for the user. (deprecated, use -Credential) | ||
.Parameter SSLMode | ||
None: Do not use SSL. | ||
Required: Always use SSL. Deny connection if server does not support SSL. Do not perform server certificate validation. | ||
VerifyCA: Always use SSL. Validate server SSL certificate, but different host name mismatch. | ||
VerifyFull: Always use SSL and perform full certificate validation. | ||
#> | ||
[CmdletBinding(DefaultParameterSetName="default")] | ||
Param([Parameter(ValueFromPipelineByPropertyName)][Alias("cn")][string]$ConnectionName = "default" | ||
, [Parameter(ValueFromPipelineByPropertyName)][int]$CommandTimeout = 30 | ||
, [Parameter(ValueFromPipelineByPropertyName, ParameterSetName="default", Position=0)] | ||
[Parameter(ValueFromPipelineByPropertyName, ParameterSetName="userpass", Position=0)][string]$Server = "localhost" | ||
, [Parameter(ValueFromPipelineByPropertyName, ParameterSetName="default", Position=1)] | ||
[Parameter(ValueFromPipelineByPropertyName, ParameterSetName="userpass", Position=1)][string]$Database = "mysql" | ||
, [Parameter(ValueFromPipelineByPropertyName, ParameterSetName="default")] | ||
[Parameter(ValueFromPipelineByPropertyName, ParameterSetName="userpass")][int]$Port = 3306 | ||
, [Parameter(Mandatory, ValueFromPipelineByPropertyName, ParameterSetName="default")][pscredential]$Credential | ||
, [Parameter(Mandatory, ValueFromPipelineByPropertyName, ParameterSetName="userpass")][string]$UserName | ||
, [Parameter(Mandatory, ValueFromPipelineByPropertyName, ParameterSetName="userpass")][string]$Password | ||
, [Parameter(ValueFromPipeline, ParameterSetName="default")] | ||
[Parameter(ValueFromPipeline, ParameterSetName="userpass")] | ||
[ValidateSet("None","Required","VerifyCA","VerifyFull")][string]$SSLMode = "None" | ||
, [Parameter(Mandatory, ValueFromPipelineByPropertyName, ParameterSetName="Conn")][string]$ConnectionString) | ||
|
||
If($Script:Connections.ContainsKey($ConnectionName)) { Close-SqlConnection $ConnectionName } | ||
|
||
$sb = [MySql.Data.MySqlClient.MySqlConnectionStringBuilder]::new() | ||
|
||
If($PSCmdlet.ParameterSetName -eq "Conn") { $conn = [MySql.Data.MySqlClient.MySqlConnection]::new($ConnectionString) } | ||
Else { | ||
$sb.Server = $Server | ||
$sb.Database = $Database | ||
If($Port) { $sb.Port = $Port } | ||
If($Credential) { | ||
$sb.UserID = $Credential.UserName | ||
$sb.Password = $Credential.GetNetworkCredential().Password | ||
} | ||
Else { | ||
Write-Warning "You are using -UserName and -Password, these options are deprecated and will be removed in the future. Please consider using -Credential." | ||
$sb.UserId = $UserName | ||
$sb.Password = $Password | ||
} | ||
|
||
$sb.UseAffectedRows = $true | ||
$sb.AllowUserVariables = $true | ||
$sb.SslMode = $SSLMode | ||
|
||
$conn = [MySql.Data.MySqlClient.MySqlConnection]::new($sb.ConnectionString) | ||
$sb.Clear() | ||
$sb = $null | ||
Remove-Variable sb | ||
} | ||
|
||
Try { $conn.Open() } | ||
Catch { | ||
$conn.Dispose() | ||
Throw $_ | ||
} | ||
$Script:Connections.$ConnectionName = [MySqlProvider]::new($ConnectionName, $CommandTimeout, $conn) | ||
} | ||
|
||
Export-ModuleMember -Function Open-MySqlConnection |
Oops, something went wrong.