初始化询价智能体新仓:同步本地工程并排除密钥与 .env。
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,82 @@
|
||||
# Import official Jeecg SQL into inquiry_robot only (strip CREATE/USE jeecg-boot).
|
||||
$ErrorActionPreference = "Stop"
|
||||
$mysql = "C:\yutongda\tools\mysql-8.0.39-winx64\bin\mysql.exe"
|
||||
$srcSql = "C:\Users\ytd_extdev_0903\incoming\jeecgboot-mysql-5.7.sql"
|
||||
$opsDir = "E:\wwwroot\ops\sql"
|
||||
New-Item -ItemType Directory -Force -Path $opsDir | Out-Null
|
||||
if (-not (Test-Path $srcSql)) { throw "missing incoming sql" }
|
||||
|
||||
$patched = Join-Path $opsDir "jeecgboot-mysql-5.7-inquiry_robot.sql"
|
||||
Write-Output "patching SQL for inquiry_robot..."
|
||||
$raw = [System.IO.File]::ReadAllText($srcSql)
|
||||
$raw = [regex]::Replace($raw, '(?im)^\s*CREATE\s+database\s+if\s+NOT\s+EXISTS\s+`jeecg-boot`[^;]*;\s*', '')
|
||||
$raw = [regex]::Replace($raw, '(?im)^\s*USE\s+`jeecg-boot`\s*;\s*', '')
|
||||
[System.IO.File]::WriteAllText($patched, $raw)
|
||||
Write-Output ("patched_bytes=" + (Get-Item $patched).Length)
|
||||
|
||||
$envFile = "E:\wwwroot\.env"
|
||||
$hostn = "10.206.0.15"
|
||||
$user = "inquiry_robot"
|
||||
$pass = $null
|
||||
$db = "inquiry_robot"
|
||||
Get-Content $envFile | ForEach-Object {
|
||||
if ($_ -match '^MYSQL_HOST=(.+)$') { $hostn = $Matches[1].Trim() }
|
||||
if ($_ -match '^MYSQL_USER=(.+)$') { $user = $Matches[1].Trim() }
|
||||
if ($_ -match '^MYSQL_PASSWORD=(.+)$') { $pass = $Matches[1].Trim() }
|
||||
if ($_ -match '^MYSQL_DB=(.+)$') { $db = $Matches[1].Trim() }
|
||||
}
|
||||
if ([string]::IsNullOrWhiteSpace($pass)) { throw "MYSQL_PASSWORD empty" }
|
||||
if ($db -ne "inquiry_robot") { throw "refuse db=$db" }
|
||||
|
||||
Write-Output ("import host=$hostn db=$db user=$user")
|
||||
$ErrorActionPreference = "Continue"
|
||||
|
||||
function Mysql-Scalar([string]$query) {
|
||||
$out = & $mysql -h $hostn -P 3306 -u $user "-p$pass" --connect-timeout=15 --batch -N $db -e $query 2>&1
|
||||
$err = ($out | ForEach-Object {"$_"}) | Where-Object { $_ -match "ERROR\s+\d+" } | Select-Object -First 1
|
||||
if ($err) { throw $err }
|
||||
return ($out | ForEach-Object {"$_".Trim()} | Where-Object { $_ -ne "" -and $_ -notmatch "Warning" } | Select-Object -Last 1)
|
||||
}
|
||||
|
||||
Write-Output ("connected db=" + (Mysql-Scalar "SELECT DATABASE()"))
|
||||
$cnt = Mysql-Scalar "SELECT COUNT(*) FROM information_schema.tables WHERE table_schema=DATABASE() AND table_name='sys_user'"
|
||||
Write-Output ("has_sys_user=$cnt")
|
||||
if ($cnt -eq "1") {
|
||||
Write-Output "SKIP_ALREADY_IMPORTED"
|
||||
exit 0
|
||||
}
|
||||
|
||||
$cnf = Join-Path $opsDir "_mysql_import.cnf"
|
||||
@"
|
||||
[client]
|
||||
host=$hostn
|
||||
port=3306
|
||||
user=$user
|
||||
password=$pass
|
||||
default-character-set=utf8mb4
|
||||
"@ | Set-Content $cnf -Encoding ascii
|
||||
|
||||
Write-Output "running import..."
|
||||
$errLog = Join-Path $opsDir "_import_err.txt"
|
||||
$outLog = Join-Path $opsDir "_import_out.txt"
|
||||
$p = Start-Process -FilePath $mysql `
|
||||
-ArgumentList @("--defaults-extra-file=$cnf", $db) `
|
||||
-RedirectStandardInput $patched `
|
||||
-RedirectStandardError $errLog `
|
||||
-RedirectStandardOutput $outLog `
|
||||
-Wait -PassThru -NoNewWindow
|
||||
Remove-Item $cnf -Force -ErrorAction SilentlyContinue
|
||||
Write-Output ("mysql_exit=" + $p.ExitCode)
|
||||
if ($p.ExitCode -ne 0) {
|
||||
Get-Content $errLog -Tail 40 -ErrorAction SilentlyContinue
|
||||
throw "import exit=$($p.ExitCode)"
|
||||
}
|
||||
|
||||
$cnt2 = Mysql-Scalar "SELECT COUNT(*) FROM information_schema.tables WHERE table_schema=DATABASE() AND table_name='sys_user'"
|
||||
Write-Output ("after_has_sys_user=$cnt2")
|
||||
if ($cnt2 -ne "1") {
|
||||
Get-Content $errLog -Tail 50 -ErrorAction SilentlyContinue
|
||||
throw "import did not create sys_user"
|
||||
}
|
||||
Write-Output ("table_count=" + (Mysql-Scalar "SELECT COUNT(*) FROM information_schema.tables WHERE table_schema=DATABASE()"))
|
||||
Write-Output "IMPORT_OK"
|
||||
Reference in New Issue
Block a user