RuoYi-Vue/create_database_table.ps1

98 lines
3.7 KiB
PowerShell
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 数据库表创建脚本
# 确保MySQL路径和SQL文件路径正确
param(
[Parameter(Mandatory=$false)]
[string]$MysqlPath
)
# 配置参数
# 自动检测MySQL可执行文件路径
$MYSQL_EXE = if (-not [string]::IsNullOrEmpty($MysqlPath)) {
$MysqlPath
} elseif (Get-Command 'mysql' -ErrorAction SilentlyContinue) {
# 获取完整路径而非仅命令名
(Get-Command 'mysql').Path
} else {
# 默认路径列表 - 根据常见安装位置检测
$defaultPaths = @(
'C:\Program Files\MySQL\MySQL Server 8.0\bin\mysql.exe',
'C:\Program Files\MySQL\MySQL Server 8.1\bin\mysql.exe',
'C:\Program Files\MySQL\MySQL Server 8.2\bin\mysql.exe',
'C:\Program Files\MySQL\MySQL Server 5.7\bin\mysql.exe',
'C:\Program Files (x86)\MySQL\MySQL Server 8.0\bin\mysql.exe',
'C:\Program Files (x86)\MySQL\MySQL Server 8.1\bin\mysql.exe',
'C:\Program Files (x86)\MySQL\MySQL Server 5.7\bin\mysql.exe'
)
$foundPath = $defaultPaths | Where-Object { Test-Path $_ -PathType Leaf } | Select-Object -First 1
if (-not $foundPath) {
Write-Host "Error: MySQL executable not found in default paths."
# 添加交互式路径输入
$userPath = Read-Host "Enter the full path to mysql.exe (e.g. C:\mysql\bin\mysql.exe)"
Write-Host "Debug: User input path - $userPath"
if (Test-Path -Path $userPath -PathType Leaf) {
$foundPath = $userPath
Write-Host "Using MySQL path: $foundPath"
Write-Host "Debug: Assigned foundPath to user input"
} else {
Write-Host "Invalid path provided. Exiting."
exit 1
}
}
Write-Host "Debug: Found MySQL path - $foundPath"
$MYSQL_EXE = $foundPath
}
$SQL_FILE = "C:\Users\lenovo\RuoYi-Vue\sql\database_product.sql"
$DB_USER = "root"
$DB_NAME = "ry-vue"
# 检查MySQL可执行文件是否存在
Write-Host "Debug: Checking MySQL path - $MYSQL_EXE"
if (-not (Test-Path -Path $MYSQL_EXE -PathType Leaf)) {
Write-Host "Error: MySQL executable not found at specified path"
Write-Host "Debug: Checking MySQL path - $MYSQL_EXE"
Write-Host "Debug: Test-Path result - $(Test-Path -Path $MYSQL_EXE -PathType Leaf)"
Write-Host "Please verify the MySQL installation path and try again."
# 添加交互式路径输入
$userPath = Read-Host "Enter the full path to mysql.exe (e.g. C:\mysql\bin\mysql.exe)"
if (Test-Path -Path $userPath -PathType Leaf) {
$MYSQL_EXE = $userPath
Write-Host "Using MySQL path: $MYSQL_EXE"
} else {
Write-Host "Invalid path provided. Exiting."
exit 1
}
}
Write-Host "Please verify the following:
1. The path contains the correct MySQL version number (e.g., 8.0, 8.1, 5.7)
2. The path uses the correct Program Files directory (Program Files or Program Files (x86))"
Write-Host "Common default paths to try:
- C:\Program Files\MySQL\MySQL Server 8.1\bin\mysql.exe
- C:\Program Files\MySQL\MySQL Server 5.7\bin\mysql.exe
- C:\Program Files (x86)\MySQL\MySQL Server 8.0\bin\mysql.exe"
# 删除此处的exit 1允许继续执行交互式输入
# 删除多余的闭合括号
# 检查SQL文件是否存在
if (-not (Test-Path -Path $SQL_FILE -PathType Leaf)) {
Write-Host "Error: SQL file not found - $SQL_FILE"
exit 1
}
# 执行SQL脚本
Write-Host "Starting to execute SQL script: $SQL_FILE"
Write-Host "Connecting to database: $DB_NAME (user: $DB_USER)"
# 使用调用运算符执行MySQL命令
& "$MYSQL_EXE" -u $DB_USER -p $DB_NAME -e "source $SQL_FILE"
# 检查执行结果
if ($LASTEXITCODE -eq 0) {
Write-Host "Success: database_product table created"
} else {
Write-Host "Error: SQL execution failed, exit code: $LASTEXITCODE"
exit $LASTEXITCODE
}