v2.2更新
This commit is contained in:
41
upgrade.php
41
upgrade.php
@@ -10,6 +10,16 @@
|
||||
// 辅助函数
|
||||
// ===========================================
|
||||
|
||||
// 版本升级列表(唯一数据源)
|
||||
$UPGRADE_VERSIONS = [
|
||||
'1.7' => __DIR__ . '/sql/upgrades/v1.7.sql',
|
||||
'1.8' => __DIR__ . '/sql/upgrades/v1.8.sql',
|
||||
'2.0' => __DIR__ . '/sql/upgrades/v2.0.sql',
|
||||
'2.0.1' => __DIR__ . '/sql/upgrades/v2.0.1.sql',
|
||||
'2.1' => __DIR__ . '/sql/upgrades/v2.1.sql',
|
||||
'2.2' => __DIR__ . '/sql/upgrades/v2.2.sql',
|
||||
];
|
||||
|
||||
/**
|
||||
* 读取 backend/.env 文件并解析数据库配置
|
||||
*/
|
||||
@@ -59,16 +69,10 @@ function detectCurrentVersion($pdo) {
|
||||
* 获取需要执行的升级步骤
|
||||
*/
|
||||
function getUpgradeSteps($currentVersion, $targetVersion) {
|
||||
$allVersions = [
|
||||
'1.7' => __DIR__ . '/sql/upgrades/v1.7.sql',
|
||||
'1.8' => __DIR__ . '/sql/upgrades/v1.8.sql',
|
||||
'2.0' => __DIR__ . '/sql/upgrades/v2.0.sql',
|
||||
'2.0.1' => __DIR__ . '/sql/upgrades/v2.0.1.sql',
|
||||
'2.1' => __DIR__ . '/sql/upgrades/v2.1.sql',
|
||||
];
|
||||
global $UPGRADE_VERSIONS;
|
||||
|
||||
$steps = [];
|
||||
foreach ($allVersions as $version => $sqlFile) {
|
||||
foreach ($UPGRADE_VERSIONS as $version => $sqlFile) {
|
||||
if (version_compare($version, $currentVersion, '>') &&
|
||||
version_compare($version, $targetVersion, '<=')) {
|
||||
$steps[$version] = $sqlFile;
|
||||
@@ -128,19 +132,11 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST' && ($_GET['action'] ?? '') === 'step')
|
||||
]);
|
||||
|
||||
// 获取该版本对应的 SQL 文件
|
||||
$allVersions = [
|
||||
'1.7' => __DIR__ . '/sql/upgrades/v1.7.sql',
|
||||
'1.8' => __DIR__ . '/sql/upgrades/v1.8.sql',
|
||||
'2.0' => __DIR__ . '/sql/upgrades/v2.0.sql',
|
||||
'2.0.1' => __DIR__ . '/sql/upgrades/v2.0.1.sql',
|
||||
'2.1' => __DIR__ . '/sql/upgrades/v2.1.sql',
|
||||
];
|
||||
|
||||
if (!isset($allVersions[$stepVersion])) {
|
||||
if (!isset($UPGRADE_VERSIONS[$stepVersion])) {
|
||||
throw new RuntimeException("未知版本: {$stepVersion}");
|
||||
}
|
||||
|
||||
$sqlFile = $allVersions[$stepVersion];
|
||||
$sqlFile = $UPGRADE_VERSIONS[$stepVersion];
|
||||
$shortFile = basename($sqlFile);
|
||||
|
||||
executeUpgrade($pdo, $stepVersion, $sqlFile);
|
||||
@@ -432,6 +428,15 @@ try {
|
||||
<div class="error-box">
|
||||
<strong>错误:</strong><?php echo htmlspecialchars($errorMessage); ?>
|
||||
</div>
|
||||
<?php if ($hasError && strpos($errorMessage, '配置文件不存在') !== false): ?>
|
||||
<div class="warning-box">
|
||||
<strong>💡 解决方法:</strong><br>
|
||||
1. 进入 <code>backend/</code> 目录<br>
|
||||
2. 复制配置模板:<code>cp .env.example .env</code><br>
|
||||
3. 编辑 <code>.env</code> 文件,填入实际的数据库连接信息<br>
|
||||
4. 刷新此页面
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<?php elseif ($isUpToDate): ?>
|
||||
<div class="success-box">
|
||||
✓ 数据库已是最新版本,无需升级。
|
||||
|
||||
Reference in New Issue
Block a user