reworked docker setup
This commit is contained in:
34
docker/SqlCollationSwitcher/SqlCollationSwitcher.ps1
Normal file
34
docker/SqlCollationSwitcher/SqlCollationSwitcher.ps1
Normal file
@@ -0,0 +1,34 @@
|
||||
param(
|
||||
[string]$compressedFile
|
||||
)
|
||||
|
||||
# Load .NET assembly for file handling
|
||||
Add-Type -AssemblyName System.IO.Compression.FileSystem
|
||||
|
||||
# Resolve absolute path of the compressed file
|
||||
$absoluteCompressedFile = Resolve-Path $compressedFile
|
||||
|
||||
# Generate file names
|
||||
$workingDir = Split-Path $absoluteCompressedFile
|
||||
$uncompressedFile = Join-Path $workingDir ($compressedFile -replace '^\.\\', '' -replace '\.sql\.gz$', '_uncompressed.sql')
|
||||
$modifiedFile = Join-Path $workingDir ($compressedFile -replace '^\.\\', '' -replace '\.sql\.gz$', '_modified.sql')
|
||||
$recompressedFile = Join-Path $workingDir ($compressedFile -replace '^\.\\', '' -replace '\.gz$', '_modified.sql.gz')
|
||||
|
||||
# Decompress .sql.gz file using .NET Framework
|
||||
[System.IO.Compression.ZipFile]::ExtractToDirectory($absoluteCompressedFile, $workingDir)
|
||||
|
||||
# Read content of uncompressed file
|
||||
$content = Get-Content -Path $uncompressedFile -Raw
|
||||
|
||||
# Replace text
|
||||
$content = $content -replace 'utf8mb4_0900_ai_ci', 'utf8mb4_general_ci'
|
||||
|
||||
# Write modified content to file
|
||||
Set-Content -Path $modifiedFile -Value $content -Encoding UTF8
|
||||
|
||||
# Compress .sql file back to .sql.gz using .NET Framework
|
||||
[System.IO.Compression.ZipFile]::CreateFromDirectory($workingDir, $recompressedFile)
|
||||
|
||||
# Cleanup: Optionally, you can remove the uncompressed and modified files if you don't need them anymore
|
||||
# Remove-Item $uncompressedFile
|
||||
# Remove-Item $modifiedFile
|
||||
Reference in New Issue
Block a user