mall数据库文件
This commit is contained in:
201
mall_sql/deploy.bat
Normal file
201
mall_sql/deploy.bat
Normal file
@@ -0,0 +1,201 @@
|
||||
@echo off
|
||||
REM ================================================================================
|
||||
REM Mall SQL 自动部署脚本 (Windows)
|
||||
REM ================================================================================
|
||||
REM 用途:自动执行商城数据库脚本
|
||||
REM 使用:deploy.bat [选项]
|
||||
REM
|
||||
REM 选项:
|
||||
REM --full 完整部署(删除重建)
|
||||
REM --upgrade 增量升级
|
||||
REM --check 仅检查数据库状态
|
||||
REM --test 创建测试数据
|
||||
REM --help 显示帮助
|
||||
REM ================================================================================
|
||||
|
||||
setlocal enabledelayedexpansion
|
||||
|
||||
REM 默认配置
|
||||
if "%DB_HOST%"=="" set DB_HOST=localhost
|
||||
if "%DB_PORT%"=="" set DB_PORT=5432
|
||||
if "%DB_NAME%"=="" set DB_NAME=akmon
|
||||
if "%DB_USER%"=="" set DB_USER=postgres
|
||||
|
||||
set SCHEMA_DIR=schemas
|
||||
set MIGRATION_DIR=migrations
|
||||
set TEST_DIR=tests
|
||||
set SUBSCRIPTION_DIR=subscription
|
||||
|
||||
REM 显示帮助
|
||||
if "%1"=="--help" goto :show_help
|
||||
if "%1"=="-h" goto :show_help
|
||||
|
||||
echo ==========================================
|
||||
echo Mall SQL 自动部署脚本
|
||||
echo ==========================================
|
||||
echo 数据库: %DB_USER%@%DB_HOST%:%DB_PORT%/%DB_NAME%
|
||||
echo ==========================================
|
||||
echo.
|
||||
|
||||
REM 检查连接
|
||||
echo [INFO] 检查数据库连接...
|
||||
psql -h %DB_HOST% -p %DB_PORT% -U %DB_USER% -d %DB_NAME% -c "\q" >nul 2>&1
|
||||
if errorlevel 1 (
|
||||
echo [ERROR] 无法连接到数据库
|
||||
echo 请检查环境变量或连接信息
|
||||
goto :end
|
||||
)
|
||||
echo [SUCCESS] 数据库连接成功
|
||||
echo.
|
||||
|
||||
REM 解析参数
|
||||
if "%1"=="--full" goto :deploy_full
|
||||
if "%1"=="--upgrade" goto :deploy_upgrade
|
||||
if "%1"=="--check" goto :check_database
|
||||
if "%1"=="--test" goto :create_test_data
|
||||
if "%1"=="--subscription" goto :deploy_subscription
|
||||
|
||||
echo [ERROR] 未知选项: %1%
|
||||
echo.
|
||||
goto :show_help
|
||||
|
||||
:deploy_full
|
||||
echo ==========================================
|
||||
echo [WARNING] 完整部署将重建所有商城表!
|
||||
echo ==========================================
|
||||
set /p confirm="确认继续? (yes/no): "
|
||||
if /i not "%confirm%"=="yes" (
|
||||
echo [INFO] 已取消
|
||||
goto :end
|
||||
)
|
||||
|
||||
echo [INFO] 开始完整部署...
|
||||
|
||||
echo [INFO] 执行: 创建商城核心表...
|
||||
psql -h %DB_HOST% -p %DB_PORT% -U %DB_USER% -d %DB_NAME% -f %SCHEMA_DIR%\complete_mall_database.sql
|
||||
if errorlevel 1 goto :error
|
||||
|
||||
echo [INFO] 执行: 创建商品补充表...
|
||||
psql -h %DB_HOST% -p %DB_PORT% -U %DB_USER% -d %DB_NAME% -f %SCHEMA_DIR%\product_database.sql
|
||||
if errorlevel 1 goto :error
|
||||
|
||||
echo [INFO] 执行: 配置SEO和安全策略...
|
||||
psql -h %DB_HOST% -p %DB_PORT% -U %DB_USER% -d %DB_NAME% -f %SCHEMA_DIR%\mall_seo_security.sql
|
||||
if errorlevel 1 goto :error
|
||||
|
||||
echo [INFO] 执行: 创建订阅表...
|
||||
psql -h %DB_HOST% -p %DB_PORT% -U %DB_USER% -d %DB_NAME% -f %SUBSCRIPTION_DIR%\create_mall_subscription_tables.sql
|
||||
if errorlevel 1 goto :error
|
||||
|
||||
echo [INFO] 执行: 创建订阅触发器...
|
||||
psql -h %DB_HOST% -p %DB_PORT% -U %DB_USER% -d %DB_NAME% -f %SUBSCRIPTION_DIR%\subscription_guard_trigger.sql
|
||||
if errorlevel 1 goto :error
|
||||
|
||||
echo [INFO] 执行: 创建订阅RLS策略...
|
||||
psql -h %DB_HOST% -p %DB_PORT% -U %DB_USER% -d %DB_NAME% -f %SUBSCRIPTION_DIR%\subscription_rls_policies.sql
|
||||
if errorlevel 1 goto :error
|
||||
|
||||
echo.
|
||||
echo [SUCCESS] 完整部署完成!
|
||||
echo [INFO] 接下来可以运行: deploy.bat --test
|
||||
goto :end
|
||||
|
||||
:deploy_upgrade
|
||||
echo [INFO] 开始增量升级...
|
||||
|
||||
echo [INFO] 执行: 数据库状态检查...
|
||||
psql -h %DB_HOST% -p %DB_PORT% -U %DB_USER% -d %DB_NAME% -f %TEST_DIR%\mall_database_check.sql
|
||||
if errorlevel 1 goto :error
|
||||
|
||||
echo [INFO] 执行: 增量升级...
|
||||
psql -h %DB_HOST% -p %DB_PORT% -U %DB_USER% -d %DB_NAME% -f %MIGRATION_DIR%\mall_alter_upgrade.sql
|
||||
if errorlevel 1 goto :error
|
||||
|
||||
echo [INFO] 执行: 数据完整性验证...
|
||||
psql -h %DB_HOST% -p %DB_PORT% -U %DB_USER% -d %DB_NAME% -f %TEST_DIR%\validation_test.sql
|
||||
if errorlevel 1 goto :error
|
||||
|
||||
echo.
|
||||
echo [SUCCESS] 增量升级完成!
|
||||
goto :end
|
||||
|
||||
:check_database
|
||||
echo [INFO] 检查数据库状态...
|
||||
psql -h %DB_HOST% -p %DB_PORT% -U %DB_USER% -d %DB_NAME% -f %TEST_DIR%\mall_database_check.sql
|
||||
if errorlevel 1 goto :error
|
||||
echo [SUCCESS] 检查完成
|
||||
goto :end
|
||||
|
||||
:create_test_data
|
||||
echo [INFO] 创建测试数据...
|
||||
|
||||
echo [INFO] 执行: 创建测试用户...
|
||||
psql -h %DB_HOST% -p %DB_PORT% -U %DB_USER% -d %DB_NAME% -f %TEST_DIR%\create_supabase_auth_users.sql
|
||||
if errorlevel 1 goto :error
|
||||
|
||||
echo [INFO] 执行: 创建模拟数据...
|
||||
psql -h %DB_HOST% -p %DB_PORT% -U %DB_USER% -d %DB_NAME% -f %TEST_DIR%\mock_data_insert.sql
|
||||
if errorlevel 1 goto :error
|
||||
|
||||
echo [INFO] 执行: 验证测试数据...
|
||||
psql -h %DB_HOST% -p %DB_PORT% -U %DB_USER% -d %DB_NAME% -f %TEST_DIR%\verify_mock_data_fix.sql
|
||||
if errorlevel 1 goto :error
|
||||
|
||||
echo.
|
||||
echo [SUCCESS] 测试数据创建完成!
|
||||
goto :end
|
||||
|
||||
:deploy_subscription
|
||||
echo [INFO] 部署订阅系统...
|
||||
|
||||
psql -h %DB_HOST% -p %DB_PORT% -U %DB_USER% -d %DB_NAME% -f %SUBSCRIPTION_DIR%\create_mall_subscription_tables.sql
|
||||
if errorlevel 1 goto :error
|
||||
|
||||
psql -h %DB_HOST% -p %DB_PORT% -U %DB_USER% -d %DB_NAME% -f %SUBSCRIPTION_DIR%\subscription_guard_trigger.sql
|
||||
if errorlevel 1 goto :error
|
||||
|
||||
psql -h %DB_HOST% -p %DB_PORT% -U %DB_USER% -d %DB_NAME% -f %SUBSCRIPTION_DIR%\subscription_rls_policies.sql
|
||||
if errorlevel 1 goto :error
|
||||
|
||||
echo [SUCCESS] 订阅系统部署完成!
|
||||
goto :end
|
||||
|
||||
:show_help
|
||||
echo Mall SQL 自动部署脚本 (Windows)
|
||||
echo.
|
||||
echo 用法: deploy.bat [选项]
|
||||
echo.
|
||||
echo 选项:
|
||||
echo --full 完整部署(删除重建)
|
||||
echo --upgrade 增量升级(保留现有数据)
|
||||
echo --check 检查数据库状态
|
||||
echo --test 创建测试数据
|
||||
echo --subscription 部署订阅系统
|
||||
echo --help 显示此帮助信息
|
||||
echo.
|
||||
echo 环境变量:
|
||||
echo DB_HOST 数据库主机 (默认: localhost)
|
||||
echo DB_PORT 数据库端口 (默认: 5432)
|
||||
echo DB_NAME 数据库名称 (默认: akmon)
|
||||
echo DB_USER 数据库用户 (默认: postgres)
|
||||
echo.
|
||||
echo 示例:
|
||||
echo 完整部署
|
||||
echo deploy.bat --full
|
||||
echo.
|
||||
echo 增量升级
|
||||
echo deploy.bat --upgrade
|
||||
echo.
|
||||
echo 使用自定义数据库
|
||||
echo set DB_HOST=prod.example.com
|
||||
echo set DB_NAME=akmon_prod
|
||||
echo deploy.bat --upgrade
|
||||
goto :end
|
||||
|
||||
:error
|
||||
echo.
|
||||
echo [ERROR] 部署失败!请检查错误信息。
|
||||
exit /b 1
|
||||
|
||||
:end
|
||||
endlocal
|
||||
Reference in New Issue
Block a user