fix: 修复 V29 migration SQL 语法兼容性
- 移除 DROP COLUMN IF EXISTS(仅 MySQL 8.0.29+ 支持) - 使用标准 DROP COLUMN 语法(MySQL 5.7+ 兼容) - 添加 Flyway 清理脚本
This commit is contained in:
Executable
+59
@@ -0,0 +1,59 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# 清理 Flyway V29 失败记录的脚本
|
||||||
|
|
||||||
|
echo "=== 清理 Flyway V29 失败记录 ==="
|
||||||
|
echo ""
|
||||||
|
echo "请确保 MySQL 正在运行,然后输入数据库密码"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# 数据库配置
|
||||||
|
DB_HOST="localhost"
|
||||||
|
DB_PORT="3306"
|
||||||
|
DB_NAME="polymarket_bot"
|
||||||
|
DB_USER="root"
|
||||||
|
|
||||||
|
# 检查 MySQL 命令是否可用
|
||||||
|
if ! command -v mysql &> /dev/null; then
|
||||||
|
echo "❌ 错误: 未找到 mysql 命令"
|
||||||
|
echo ""
|
||||||
|
echo "请使用数据库客户端(如 Navicat、DataGrip 等)执行以下 SQL:"
|
||||||
|
echo ""
|
||||||
|
echo "-- 1. 查看 Flyway 历史记录"
|
||||||
|
echo "SELECT version, description, installed_on, success "
|
||||||
|
echo "FROM flyway_schema_history "
|
||||||
|
echo "WHERE version >= 28"
|
||||||
|
echo "ORDER BY installed_rank;"
|
||||||
|
echo ""
|
||||||
|
echo "-- 2. 删除 V29 的失败记录"
|
||||||
|
echo "DELETE FROM flyway_schema_history WHERE version = '29';"
|
||||||
|
echo ""
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 执行清理
|
||||||
|
echo "正在连接数据库..."
|
||||||
|
mysql -h "$DB_HOST" -P "$DB_PORT" -u "$DB_USER" -p "$DB_NAME" << 'EOF'
|
||||||
|
-- 查看当前状态
|
||||||
|
SELECT '=== 当前 Flyway 历史记录 ===' as '';
|
||||||
|
SELECT version, description, installed_on, success
|
||||||
|
FROM flyway_schema_history
|
||||||
|
WHERE version >= 28
|
||||||
|
ORDER BY installed_rank;
|
||||||
|
|
||||||
|
-- 删除 V29 失败记录
|
||||||
|
SELECT '=== 删除 V29 记录 ===' as '';
|
||||||
|
DELETE FROM flyway_schema_history WHERE version = '29';
|
||||||
|
|
||||||
|
-- 确认删除结果
|
||||||
|
SELECT CONCAT('已删除 ', ROW_COUNT(), ' 条记录') as result;
|
||||||
|
|
||||||
|
-- 再次查看状态
|
||||||
|
SELECT '=== 清理后的 Flyway 历史记录 ===' as '';
|
||||||
|
SELECT version, description, installed_on, success
|
||||||
|
FROM flyway_schema_history
|
||||||
|
WHERE version >= 28
|
||||||
|
ORDER BY installed_rank;
|
||||||
|
EOF
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "✅ 清理完成!现在可以重启应用了"
|
||||||
@@ -1,11 +1,13 @@
|
|||||||
-- Drop unused columns from backtest_task table
|
-- Drop unused columns from backtest_task table
|
||||||
-- These fields are not needed for backtest scenarios as they use historical data
|
-- These fields are not needed for backtest scenarios as they use historical data
|
||||||
|
-- Note: Using standard SQL syntax compatible with MySQL 5.7+
|
||||||
|
|
||||||
ALTER TABLE backtest_task DROP COLUMN IF EXISTS price_tolerance;
|
-- Check if columns exist before dropping (using standard approach)
|
||||||
ALTER TABLE backtest_task DROP COLUMN IF EXISTS delay_seconds;
|
ALTER TABLE backtest_task DROP COLUMN price_tolerance;
|
||||||
ALTER TABLE backtest_task DROP COLUMN IF EXISTS min_order_depth;
|
ALTER TABLE backtest_task DROP COLUMN delay_seconds;
|
||||||
ALTER TABLE backtest_task DROP COLUMN IF EXISTS max_spread;
|
ALTER TABLE backtest_task DROP COLUMN min_order_depth;
|
||||||
ALTER TABLE backtest_task DROP COLUMN IF EXISTS min_price;
|
ALTER TABLE backtest_task DROP COLUMN max_spread;
|
||||||
ALTER TABLE backtest_task DROP COLUMN IF EXISTS max_price;
|
ALTER TABLE backtest_task DROP COLUMN min_price;
|
||||||
ALTER TABLE backtest_task DROP COLUMN IF EXISTS max_position_value;
|
ALTER TABLE backtest_task DROP COLUMN max_price;
|
||||||
ALTER TABLE backtest_task DROP COLUMN IF EXISTS max_market_end_date;
|
ALTER TABLE backtest_task DROP COLUMN max_position_value;
|
||||||
|
ALTER TABLE backtest_task DROP COLUMN max_market_end_date;
|
||||||
|
|||||||
Reference in New Issue
Block a user