Public/DataImportTool/Rename-WitField.ps1
|
function Rename-WitField { [CmdletBinding()] param( [Parameter(Mandatory)] [string]$Collection, [Parameter(Mandatory)] [string]$ReferenceName, [Parameter(Mandatory)] [string]$NewName, [string]$WitAdminPath ) Write-FixStep "Renaming field '$ReferenceName' to '$NewName' in $Collection" $executable = Resolve-WitAdminPath -WitAdminPath $WitAdminPath $details = & $executable listfields "/collection:$Collection" "/n:$ReferenceName" if ($LASTEXITCODE -ne 0) { throw "witadmin listfields failed with exit code $LASTEXITCODE. $(($details -join ' ').Trim())" } $currentName = foreach ($line in $details) { if ($line -match '^\s*Name:\s*(.+)$') { $Matches[1].Trim(); break } } if ($currentName -ceq $NewName) { Write-FixStep " field is already named '$NewName' - no change" return } Invoke-WitAdminFix -WitAdminPath $WitAdminPath -Arguments @( 'changefield', "/collection:$Collection", "/n:$ReferenceName", "/name:$NewName", '/noprompt' ) } |