Files
flyer-crawler.projectium.com/sql/verify_rollup.ps1
Torben Sorensen 59ace9b31e
Some checks are pending
Deploy to Web Server flyer-crawler.projectium.com / deploy (push) Has started running
final initial database fixes - IT WORKS
2025-11-21 18:48:17 -08:00

52 lines
1.9 KiB
PowerShell

<#
.SYNOPSIS
SQL ROLLUP VERIFICATION SCRIPT (POWERSHELL)
.DESCRIPTION
This script verifies that the 'master_schema_rollup.sql' file is an exact
concatenation of the individual SQL component files. This helps ensure
that all database setup scripts are synchronized.
The script will exit with code 0 if they match, and 1 if they don't.
.EXAMPLE
From the root of the project, run:
.\sql\verify_rollup.ps1
#>
# Set the script to stop on errors
$ErrorActionPreference = "Stop"
# Define file paths relative to the script's location
$PSScriptRoot = Split-Path -Parent -Path $MyInvocation.MyCommand.Definition
$ProjectRoot = Resolve-Path -Path (Join-Path $PSScriptRoot "..")
$MasterFile = Join-Path $ProjectRoot "sql\master_schema_rollup.sql"
# The individual files to concatenate, IN ORDER.
$SourceFiles = @(
(Join-Path $ProjectRoot "sql\initial_schema.sql"),
(Join-Path $ProjectRoot "sql\initial_data.sql"),
(Join-Path $ProjectRoot "sql\initial_triggers_and_functions.sql")
)
Write-Host "Comparing concatenated content with '$MasterFile'..."
# Compare the master file with the concatenated content of the source files.
$Difference = Compare-Object -ReferenceObject (Get-Content $MasterFile) -DifferenceObject (Get-Content $SourceFiles)
if ($null -eq $Difference) {
Write-Host "✅ Success: '$MasterFile' is up to date with the individual SQL files." -ForegroundColor Green
exit 0
} else {
Write-Host "❌ Error: '$MasterFile' is out of sync. Differences found." -ForegroundColor Red
Write-Host "--- $MasterFile"
Write-Host "+++ Concatenated Source Files"
# Format the output to look like a diff
foreach ($diffLine in $Difference) {
if ($diffLine.SideIndicator -eq "<=") {
Write-Host ("- " + $diffLine.InputObject) -ForegroundColor Red
} elseif ($diffLine.SideIndicator -eq "=>") {
Write-Host ("+ " + $diffLine.InputObject) -ForegroundColor Green
}
}
exit 1
}