Fix PowerShell $Host reserved variable conflict in ROA setup scripts
- Rename $Host parameter to $DbHost in oracle-functions.ps1 (Invoke-SqlPlus,
Test-OracleConnection, Get-OracleVersion, Test-PDB, Get-ServiceName)
- Update all function calls in 01-setup-database.ps1 to use -DbHost instead of -Host
- Fix ${Host} -> ${DbHost} in log message (line 147)
- Fix Write-Log "" -> Write-Host "" to avoid empty string parameter error
- Add DbHost/Port parameters and config.ps1 support to setup script
- Update sys-updates/README.md to clarify folder is for future patches only
Tested successfully on ROACENTRAL (10.0.20.130) with Oracle XE 21c.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -57,6 +57,12 @@ param(
|
|||||||
[Parameter(Mandatory = $false)]
|
[Parameter(Mandatory = $false)]
|
||||||
[string]$ServiceName,
|
[string]$ServiceName,
|
||||||
|
|
||||||
|
[Parameter(Mandatory = $false)]
|
||||||
|
[string]$DbHost,
|
||||||
|
|
||||||
|
[Parameter(Mandatory = $false)]
|
||||||
|
[int]$Port = 1521,
|
||||||
|
|
||||||
[Parameter(Mandatory = $false)]
|
[Parameter(Mandatory = $false)]
|
||||||
[string]$SystemPassword = "romfastsoft",
|
[string]$SystemPassword = "romfastsoft",
|
||||||
|
|
||||||
@@ -75,6 +81,20 @@ param(
|
|||||||
|
|
||||||
$ErrorActionPreference = 'Stop'
|
$ErrorActionPreference = 'Stop'
|
||||||
|
|
||||||
|
# Load config.ps1 if exists (provides defaults)
|
||||||
|
$configPath = Join-Path (Split-Path $PSScriptRoot -Parent) "config.ps1"
|
||||||
|
if (Test-Path $configPath) {
|
||||||
|
. $configPath
|
||||||
|
# Use config values if parameters not provided
|
||||||
|
if (-not $OracleHome -and $ORACLE_HOME) { $OracleHome = $ORACLE_HOME }
|
||||||
|
if (-not $ServiceName -and $SERVICE_NAME) { $ServiceName = $SERVICE_NAME }
|
||||||
|
if (-not $DbHost -and $DB_HOST) { $DbHost = $DB_HOST }
|
||||||
|
if (-not $Port -and $DB_PORT) { $Port = $DB_PORT }
|
||||||
|
if ($SystemPassword -eq "romfastsoft" -and $SYSTEM_PASSWORD) { $SystemPassword = $SYSTEM_PASSWORD }
|
||||||
|
if ($ContafinPassword -eq "ROMFASTSOFT" -and $CONTAFIN_PASSWORD) { $ContafinPassword = $CONTAFIN_PASSWORD }
|
||||||
|
if (-not $DatafileDir -and $DATAFILE_DIR) { $DatafileDir = $DATAFILE_DIR }
|
||||||
|
}
|
||||||
|
|
||||||
# Source library functions
|
# Source library functions
|
||||||
. "$PSScriptRoot\lib\logging-functions.ps1"
|
. "$PSScriptRoot\lib\logging-functions.ps1"
|
||||||
. "$PSScriptRoot\lib\oracle-functions.ps1"
|
. "$PSScriptRoot\lib\oracle-functions.ps1"
|
||||||
@@ -98,7 +118,7 @@ try {
|
|||||||
|
|
||||||
# First try to connect to XE to check CDB status
|
# First try to connect to XE to check CDB status
|
||||||
try {
|
try {
|
||||||
$version = Get-OracleVersion -OracleHome $oraHome -ServiceName "XE" -Password $SystemPassword
|
$version = Get-OracleVersion -OracleHome $oraHome -ServiceName "XE" -DbHost $DbHost -Port $Port -Password $SystemPassword
|
||||||
if ($version.IsCDB) {
|
if ($version.IsCDB) {
|
||||||
$ServiceName = "XEPDB1"
|
$ServiceName = "XEPDB1"
|
||||||
Write-Log "Detected CDB installation, using PDB: XEPDB1"
|
Write-Log "Detected CDB installation, using PDB: XEPDB1"
|
||||||
@@ -111,7 +131,7 @@ try {
|
|||||||
catch {
|
catch {
|
||||||
# Try ROA as fallback
|
# Try ROA as fallback
|
||||||
try {
|
try {
|
||||||
$null = Test-OracleConnection -OracleHome $oraHome -ServiceName "ROA" -Password $SystemPassword
|
$null = Test-OracleConnection -OracleHome $oraHome -ServiceName "ROA" -DbHost $DbHost -Port $Port -Password $SystemPassword
|
||||||
$ServiceName = "ROA"
|
$ServiceName = "ROA"
|
||||||
Write-Log "Using existing service: ROA"
|
Write-Log "Using existing service: ROA"
|
||||||
}
|
}
|
||||||
@@ -123,22 +143,25 @@ try {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Write-LogSuccess "Service Name: $ServiceName"
|
Write-LogSuccess "Service Name: $ServiceName"
|
||||||
|
if ($DbHost) {
|
||||||
|
Write-Log "Database Host: ${DbHost}:${Port}"
|
||||||
|
}
|
||||||
|
|
||||||
# Step 3: Test connection
|
# Step 3: Test connection
|
||||||
Write-Log "Testing database connection..."
|
Write-Log "Testing database connection..."
|
||||||
if (-not (Test-OracleConnection -OracleHome $oraHome -ServiceName $ServiceName -Password $SystemPassword)) {
|
if (-not (Test-OracleConnection -OracleHome $oraHome -ServiceName $ServiceName -DbHost $DbHost -Port $Port -Password $SystemPassword)) {
|
||||||
throw "Cannot connect to database. Please verify ServiceName and SystemPassword."
|
throw "Cannot connect to database. Please verify ServiceName, Host and SystemPassword."
|
||||||
}
|
}
|
||||||
Write-LogSuccess "Database connection successful"
|
Write-LogSuccess "Database connection successful"
|
||||||
|
|
||||||
# Get version info
|
# Get version info
|
||||||
$versionInfo = Get-OracleVersion -OracleHome $oraHome -ServiceName $ServiceName -Password $SystemPassword
|
$versionInfo = Get-OracleVersion -OracleHome $oraHome -ServiceName $ServiceName -DbHost $DbHost -Port $Port -Password $SystemPassword
|
||||||
Write-Log "Oracle Version: $($versionInfo.Version)"
|
Write-Log "Oracle Version: $($versionInfo.Version)"
|
||||||
Write-Log "Oracle Edition: $($versionInfo.Edition)"
|
Write-Log "Oracle Edition: $($versionInfo.Edition)"
|
||||||
Write-Log "CDB Mode: $($versionInfo.IsCDB)"
|
Write-Log "CDB Mode: $($versionInfo.IsCDB)"
|
||||||
|
|
||||||
# Check container info
|
# Check container info
|
||||||
$containerInfo = Test-PDB -OracleHome $oraHome -ServiceName $ServiceName -Password $SystemPassword
|
$containerInfo = Test-PDB -OracleHome $oraHome -ServiceName $ServiceName -DbHost $DbHost -Port $Port -Password $SystemPassword
|
||||||
Write-Log "Container: $($containerInfo.ContainerName)"
|
Write-Log "Container: $($containerInfo.ContainerName)"
|
||||||
if ($containerInfo.IsPDB) {
|
if ($containerInfo.IsPDB) {
|
||||||
Write-Log "Connected to PDB (Pluggable Database)"
|
Write-Log "Connected to PDB (Pluggable Database)"
|
||||||
@@ -165,7 +188,7 @@ SELECT 'PROFILE_CONFIGURED' FROM dual;
|
|||||||
EXIT;
|
EXIT;
|
||||||
"@
|
"@
|
||||||
|
|
||||||
$result = Invoke-SqlPlus -OracleHome $oraHome -ServiceName $ServiceName `
|
$result = Invoke-SqlPlus -OracleHome $oraHome -ServiceName $ServiceName -DbHost $DbHost -Port $Port `
|
||||||
-Username "SYS" -Password $SystemPassword -SqlCommand $profileSql -AsSysdba
|
-Username "SYS" -Password $SystemPassword -SqlCommand $profileSql -AsSysdba
|
||||||
|
|
||||||
if ($result -match "PROFILE_CONFIGURED") {
|
if ($result -match "PROFILE_CONFIGURED") {
|
||||||
@@ -286,7 +309,7 @@ SELECT 'TS_EXISTS' FROM dba_tablespaces WHERE tablespace_name = 'ROA';
|
|||||||
EXIT;
|
EXIT;
|
||||||
"@
|
"@
|
||||||
|
|
||||||
$tsResult = Invoke-SqlPlus -OracleHome $oraHome -ServiceName $ServiceName `
|
$tsResult = Invoke-SqlPlus -OracleHome $oraHome -ServiceName $ServiceName -DbHost $DbHost -Port $Port `
|
||||||
-Username "SYSTEM" -Password $SystemPassword -SqlCommand $checkTsSql -Silent
|
-Username "SYSTEM" -Password $SystemPassword -SqlCommand $checkTsSql -Silent
|
||||||
|
|
||||||
if ($tsResult -match "TS_EXISTS") {
|
if ($tsResult -match "TS_EXISTS") {
|
||||||
@@ -309,7 +332,7 @@ SELECT 'TS_CREATED' FROM dual;
|
|||||||
EXIT;
|
EXIT;
|
||||||
"@
|
"@
|
||||||
|
|
||||||
$result = Invoke-SqlPlus -OracleHome $oraHome -ServiceName $ServiceName `
|
$result = Invoke-SqlPlus -OracleHome $oraHome -ServiceName $ServiceName -DbHost $DbHost -Port $Port `
|
||||||
-Username "SYSTEM" -Password $SystemPassword -SqlCommand $createTsSql
|
-Username "SYSTEM" -Password $SystemPassword -SqlCommand $createTsSql
|
||||||
|
|
||||||
if ($result -match "TS_CREATED") {
|
if ($result -match "TS_CREATED") {
|
||||||
@@ -339,7 +362,7 @@ COMMIT;
|
|||||||
SELECT 'PWD_UPDATED' FROM dual;
|
SELECT 'PWD_UPDATED' FROM dual;
|
||||||
EXIT;
|
EXIT;
|
||||||
"@
|
"@
|
||||||
$result = Invoke-SqlPlus -OracleHome $oraHome -ServiceName $ServiceName `
|
$result = Invoke-SqlPlus -OracleHome $oraHome -ServiceName $ServiceName -DbHost $DbHost -Port $Port `
|
||||||
-Username "SYSTEM" -Password $SystemPassword -SqlCommand $updatePwdSql -Silent
|
-Username "SYSTEM" -Password $SystemPassword -SqlCommand $updatePwdSql -Silent
|
||||||
|
|
||||||
if ($result -match "PWD_UPDATED") {
|
if ($result -match "PWD_UPDATED") {
|
||||||
@@ -382,7 +405,7 @@ SELECT 'USER_CREATED' FROM dual;
|
|||||||
EXIT;
|
EXIT;
|
||||||
"@
|
"@
|
||||||
|
|
||||||
$result = Invoke-SqlPlus -OracleHome $oraHome -ServiceName $ServiceName `
|
$result = Invoke-SqlPlus -OracleHome $oraHome -ServiceName $ServiceName -DbHost $DbHost -Port $Port `
|
||||||
-Username "SYSTEM" -Password $SystemPassword -SqlCommand $createUserSql
|
-Username "SYSTEM" -Password $SystemPassword -SqlCommand $createUserSql
|
||||||
|
|
||||||
if ($result -match "USER_CREATED") {
|
if ($result -match "USER_CREATED") {
|
||||||
@@ -402,7 +425,7 @@ SELECT privilege FROM dba_sys_privs WHERE grantee = 'CONTAFIN_ORACLE' ORDER BY p
|
|||||||
EXIT;
|
EXIT;
|
||||||
"@
|
"@
|
||||||
|
|
||||||
$privileges = Invoke-SqlPlus -OracleHome $oraHome -ServiceName $ServiceName `
|
$privileges = Invoke-SqlPlus -OracleHome $oraHome -ServiceName $ServiceName -DbHost $DbHost -Port $Port `
|
||||||
-Username "SYSTEM" -Password $SystemPassword -SqlCommand $verifyUserSql -Silent
|
-Username "SYSTEM" -Password $SystemPassword -SqlCommand $verifyUserSql -Silent
|
||||||
|
|
||||||
Write-Log "CONTAFIN_ORACLE privileges verified"
|
Write-Log "CONTAFIN_ORACLE privileges verified"
|
||||||
@@ -432,7 +455,7 @@ SELECT 'PWD_RESET_DONE' FROM DUAL;
|
|||||||
EXIT;
|
EXIT;
|
||||||
"@
|
"@
|
||||||
|
|
||||||
$result = Invoke-SqlPlus -OracleHome $oraHome -ServiceName $ServiceName `
|
$result = Invoke-SqlPlus -OracleHome $oraHome -ServiceName $ServiceName -DbHost $DbHost -Port $Port `
|
||||||
-Username "SYSTEM" -Password $SystemPassword -SqlCommand $resetPwdSql
|
-Username "SYSTEM" -Password $SystemPassword -SqlCommand $resetPwdSql
|
||||||
|
|
||||||
if ($result -match "PWD_RESET_DONE") {
|
if ($result -match "PWD_RESET_DONE") {
|
||||||
@@ -449,7 +472,7 @@ EXIT;
|
|||||||
# Summary
|
# Summary
|
||||||
Write-LogSection "Setup Complete"
|
Write-LogSection "Setup Complete"
|
||||||
Write-LogSuccess "Database initial setup completed successfully!"
|
Write-LogSuccess "Database initial setup completed successfully!"
|
||||||
Write-Log ""
|
Write-Host ""
|
||||||
Write-Log "Summary:"
|
Write-Log "Summary:"
|
||||||
Write-Log " Oracle Home: $oraHome"
|
Write-Log " Oracle Home: $oraHome"
|
||||||
Write-Log " Service Name: $ServiceName"
|
Write-Log " Service Name: $ServiceName"
|
||||||
@@ -461,7 +484,7 @@ EXIT;
|
|||||||
if (-not $SkipSqlnetConfig) {
|
if (-not $SkipSqlnetConfig) {
|
||||||
Write-Log " Old Client Auth: Enabled (sqlnet.ora + 10G verifier)"
|
Write-Log " Old Client Auth: Enabled (sqlnet.ora + 10G verifier)"
|
||||||
}
|
}
|
||||||
Write-Log ""
|
Write-Host ""
|
||||||
Write-Log "Next steps:"
|
Write-Log "Next steps:"
|
||||||
Write-Log " 1. Run 02-create-sys-objects.ps1 to install SYS objects"
|
Write-Log " 1. Run 02-create-sys-objects.ps1 to install SYS objects"
|
||||||
Write-Log " 2. Run 03-import-contafin.ps1 to import CONTAFIN_ORACLE schema"
|
Write-Log " 2. Run 03-import-contafin.ps1 to import CONTAFIN_ORACLE schema"
|
||||||
|
|||||||
@@ -131,6 +131,12 @@ function Get-OracleVersion {
|
|||||||
[Parameter(Mandatory = $true)]
|
[Parameter(Mandatory = $true)]
|
||||||
[string]$ServiceName,
|
[string]$ServiceName,
|
||||||
|
|
||||||
|
[Parameter(Mandatory = $false)]
|
||||||
|
[string]$DbHost,
|
||||||
|
|
||||||
|
[Parameter(Mandatory = $false)]
|
||||||
|
[int]$Port = 1521,
|
||||||
|
|
||||||
[Parameter(Mandatory = $false)]
|
[Parameter(Mandatory = $false)]
|
||||||
[string]$Username = "SYSTEM",
|
[string]$Username = "SYSTEM",
|
||||||
|
|
||||||
@@ -149,6 +155,7 @@ EXIT;
|
|||||||
"@
|
"@
|
||||||
|
|
||||||
$result = Invoke-SqlPlus -OracleHome $oraHome -ServiceName $ServiceName `
|
$result = Invoke-SqlPlus -OracleHome $oraHome -ServiceName $ServiceName `
|
||||||
|
-DbHost $DbHost -Port $Port `
|
||||||
-Username $Username -Password $Password -SqlCommand $sql -Silent
|
-Username $Username -Password $Password -SqlCommand $sql -Silent
|
||||||
|
|
||||||
$versionInfo = [PSCustomObject]@{
|
$versionInfo = [PSCustomObject]@{
|
||||||
@@ -201,6 +208,12 @@ function Get-ServiceName {
|
|||||||
[Parameter(Mandatory = $false)]
|
[Parameter(Mandatory = $false)]
|
||||||
[string]$OracleHome,
|
[string]$OracleHome,
|
||||||
|
|
||||||
|
[Parameter(Mandatory = $false)]
|
||||||
|
[string]$DbHost,
|
||||||
|
|
||||||
|
[Parameter(Mandatory = $false)]
|
||||||
|
[int]$Port = 1521,
|
||||||
|
|
||||||
[Parameter(Mandatory = $true)]
|
[Parameter(Mandatory = $true)]
|
||||||
[string]$SystemPassword
|
[string]$SystemPassword
|
||||||
)
|
)
|
||||||
@@ -210,6 +223,7 @@ function Get-ServiceName {
|
|||||||
# First try to connect to XE and check if it's CDB
|
# First try to connect to XE and check if it's CDB
|
||||||
try {
|
try {
|
||||||
$version = Get-OracleVersion -OracleHome $oraHome -ServiceName "XE" `
|
$version = Get-OracleVersion -OracleHome $oraHome -ServiceName "XE" `
|
||||||
|
-DbHost $DbHost -Port $Port `
|
||||||
-Password $SystemPassword -ErrorAction Stop
|
-Password $SystemPassword -ErrorAction Stop
|
||||||
|
|
||||||
if ($version.IsCDB) {
|
if ($version.IsCDB) {
|
||||||
@@ -224,6 +238,7 @@ function Get-ServiceName {
|
|||||||
# Try ROA as service name
|
# Try ROA as service name
|
||||||
try {
|
try {
|
||||||
$null = Test-OracleConnection -OracleHome $oraHome -ServiceName "ROA" `
|
$null = Test-OracleConnection -OracleHome $oraHome -ServiceName "ROA" `
|
||||||
|
-DbHost $DbHost -Port $Port `
|
||||||
-Username "SYSTEM" -Password $SystemPassword -ErrorAction Stop
|
-Username "SYSTEM" -Password $SystemPassword -ErrorAction Stop
|
||||||
return "ROA"
|
return "ROA"
|
||||||
}
|
}
|
||||||
@@ -270,6 +285,12 @@ function Test-OracleConnection {
|
|||||||
[Parameter(Mandatory = $true)]
|
[Parameter(Mandatory = $true)]
|
||||||
[string]$ServiceName,
|
[string]$ServiceName,
|
||||||
|
|
||||||
|
[Parameter(Mandatory = $false)]
|
||||||
|
[string]$DbHost,
|
||||||
|
|
||||||
|
[Parameter(Mandatory = $false)]
|
||||||
|
[int]$Port = 1521,
|
||||||
|
|
||||||
[Parameter(Mandatory = $false)]
|
[Parameter(Mandatory = $false)]
|
||||||
[string]$Username = "SYSTEM",
|
[string]$Username = "SYSTEM",
|
||||||
|
|
||||||
@@ -286,6 +307,7 @@ function Test-OracleConnection {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
$result = Invoke-SqlPlus -OracleHome $oraHome -ServiceName $ServiceName `
|
$result = Invoke-SqlPlus -OracleHome $oraHome -ServiceName $ServiceName `
|
||||||
|
-DbHost $DbHost -Port $Port `
|
||||||
-Username $Username -Password $Password -SqlCommand $sql -AsSysdba:$AsSysdba -Silent
|
-Username $Username -Password $Password -SqlCommand $sql -AsSysdba:$AsSysdba -Silent
|
||||||
|
|
||||||
return $result -match "CONNECTED"
|
return $result -match "CONNECTED"
|
||||||
@@ -330,6 +352,12 @@ function Test-PDB {
|
|||||||
[Parameter(Mandatory = $true)]
|
[Parameter(Mandatory = $true)]
|
||||||
[string]$ServiceName,
|
[string]$ServiceName,
|
||||||
|
|
||||||
|
[Parameter(Mandatory = $false)]
|
||||||
|
[string]$DbHost,
|
||||||
|
|
||||||
|
[Parameter(Mandatory = $false)]
|
||||||
|
[int]$Port = 1521,
|
||||||
|
|
||||||
[Parameter(Mandatory = $false)]
|
[Parameter(Mandatory = $false)]
|
||||||
[string]$Username = "SYSTEM",
|
[string]$Username = "SYSTEM",
|
||||||
|
|
||||||
@@ -347,6 +375,7 @@ EXIT;
|
|||||||
"@
|
"@
|
||||||
|
|
||||||
$result = Invoke-SqlPlus -OracleHome $oraHome -ServiceName $ServiceName `
|
$result = Invoke-SqlPlus -OracleHome $oraHome -ServiceName $ServiceName `
|
||||||
|
-DbHost $DbHost -Port $Port `
|
||||||
-Username $Username -Password $Password -SqlCommand $sql -Silent
|
-Username $Username -Password $Password -SqlCommand $sql -Silent
|
||||||
|
|
||||||
$containerInfo = [PSCustomObject]@{
|
$containerInfo = [PSCustomObject]@{
|
||||||
@@ -428,6 +457,12 @@ function Invoke-SqlPlus {
|
|||||||
[Parameter(Mandatory = $true)]
|
[Parameter(Mandatory = $true)]
|
||||||
[string]$ServiceName,
|
[string]$ServiceName,
|
||||||
|
|
||||||
|
[Parameter(Mandatory = $false)]
|
||||||
|
[string]$DbHost,
|
||||||
|
|
||||||
|
[Parameter(Mandatory = $false)]
|
||||||
|
[int]$Port = 1521,
|
||||||
|
|
||||||
[Parameter(Mandatory = $false)]
|
[Parameter(Mandatory = $false)]
|
||||||
[string]$Username = "SYSTEM",
|
[string]$Username = "SYSTEM",
|
||||||
|
|
||||||
@@ -454,9 +489,13 @@ function Invoke-SqlPlus {
|
|||||||
throw "SQL*Plus not found at: $sqlplus"
|
throw "SQL*Plus not found at: $sqlplus"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Build connection string
|
# Build connection string (EZConnect format if DbHost is provided)
|
||||||
$sysdba = if ($AsSysdba) { " as sysdba" } else { "" }
|
$sysdba = if ($AsSysdba) { " as sysdba" } else { "" }
|
||||||
$connString = "$Username/`"$Password`"@$ServiceName$sysdba"
|
if ($DbHost) {
|
||||||
|
$connString = "$Username/`"$Password`"@${DbHost}:${Port}/${ServiceName}$sysdba"
|
||||||
|
} else {
|
||||||
|
$connString = "$Username/`"$Password`"@$ServiceName$sysdba"
|
||||||
|
}
|
||||||
|
|
||||||
$tempFile = $null
|
$tempFile = $null
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,61 @@
|
|||||||
|
# SYS Updates Folder
|
||||||
|
|
||||||
|
This folder is for **future patches and updates only**, not for initial setup.
|
||||||
|
|
||||||
|
## Important Note
|
||||||
|
|
||||||
|
The initial SYS objects (AUTH_PACK, NEWSCHEMA, EXECUTESCRIPTOS, etc.) are already
|
||||||
|
consolidated in `../sys-objects.sql`. You do NOT need to copy the old individual
|
||||||
|
scripts (`sys_2006_*.sql` through `sys_2026_*.sql`) here.
|
||||||
|
|
||||||
|
**Initial setup order:**
|
||||||
|
1. `sys-objects.sql` - Creates all SYS objects (tables, packages, procedures, views)
|
||||||
|
2. Import `CONTAFIN_ORACLE.dmp` - Application schema
|
||||||
|
3. `sys-grants.sql` - Grants and public synonyms
|
||||||
|
4. `sys-updates/*.sql` - (Optional) Post-install patches
|
||||||
|
|
||||||
|
## When to Use This Folder
|
||||||
|
|
||||||
|
Place scripts here when you need to:
|
||||||
|
- Add new grants or privileges after initial setup
|
||||||
|
- Patch AUTH_PACK or other SYS objects
|
||||||
|
- Add new SYS procedures/functions
|
||||||
|
- Fix issues discovered after deployment
|
||||||
|
|
||||||
|
## Naming Convention
|
||||||
|
|
||||||
|
Use date-based naming for proper ordering:
|
||||||
|
```
|
||||||
|
YYYY_MM_DD_##_DESCRIPTION.sql
|
||||||
|
```
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
- `2026_02_15_01_AUTH_PACK_FIX.sql`
|
||||||
|
- `2026_03_01_01_NEW_GRANT.sql`
|
||||||
|
|
||||||
|
## How Scripts Are Executed
|
||||||
|
|
||||||
|
1. The `run-sys-updates.sql` master script executes all `.sql` files in this folder
|
||||||
|
2. Scripts run in alphabetical order (hence the date prefix)
|
||||||
|
3. Each script should be idempotent (safe to run multiple times)
|
||||||
|
|
||||||
|
## Template
|
||||||
|
|
||||||
|
```sql
|
||||||
|
-- ============================================================================
|
||||||
|
-- YYYY_MM_DD_##_DESCRIPTION
|
||||||
|
-- ============================================================================
|
||||||
|
-- Author: Your Name
|
||||||
|
-- Date: YYYY-MM-DD
|
||||||
|
-- Description: What this script does
|
||||||
|
-- ============================================================================
|
||||||
|
|
||||||
|
SET SERVEROUTPUT ON
|
||||||
|
WHENEVER SQLERROR CONTINUE
|
||||||
|
|
||||||
|
-- Your SQL here
|
||||||
|
|
||||||
|
-- Update version tracking (optional)
|
||||||
|
-- EXEC CONTAFIN_ORACLE.PACK_MIGRARE.UpdateVersiune('sys_YYYY_MM_DD_##_DESCRIPTION','','SYS');
|
||||||
|
-- COMMIT;
|
||||||
|
```
|
||||||
Reference in New Issue
Block a user