live-forum/server/webapi/数据库脚本/v1.0.1_rollback.sql
2026-03-24 11:27:37 +08:00

127 lines
4.7 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- ========================================
-- 团播机构 v1.0.1 数据库回滚脚本
-- 创建时间: 2025-01-10
-- 说明: 回滚首页弹窗功能和Banner跳转功能的数据库修改
-- 警告: 此操作将删除相关数据,请谨慎执行!
-- ========================================
-- 检查脚本执行环境
PRINT '开始执行 v1.0.1 数据库回滚脚本...'
PRINT '执行时间: ' + CONVERT(VARCHAR, GETDATE(), 120)
PRINT '警告: 此操作将删除相关数据,请确认后继续!'
-- ========================================
-- 1. 删除弹窗链接类型字典数据
-- ========================================
PRINT '正在删除弹窗链接类型字典数据...'
-- 删除字典数据
IF EXISTS (SELECT * FROM sys_dict_data WHERE DictType = 'liveforum_popup_linktype')
BEGIN
DELETE FROM sys_dict_data WHERE DictType = 'liveforum_popup_linktype';
PRINT '✓ 删除弹窗链接类型字典数据'
END
-- 删除字典类型
IF EXISTS (SELECT * FROM sys_dict_type WHERE DictType = 'liveforum_popup_linktype')
BEGIN
DELETE FROM sys_dict_type WHERE DictType = 'liveforum_popup_linktype';
PRINT '✓ 删除弹窗链接类型字典类型'
END
-- ========================================
-- 2. 删除 Banner 字典中的通知详情选项
-- ========================================
PRINT '正在删除 Banner 字典中的通知详情选项...'
IF EXISTS (SELECT * FROM sys_dict_data WHERE DictType = 'liveforum_banners_linktype' AND DictValue = '4')
BEGIN
DELETE FROM sys_dict_data WHERE DictType = 'liveforum_banners_linktype' AND DictValue = '4';
PRINT '✓ 删除 Banner 字典中的通知详情选项'
END
-- ========================================
-- 3. 恢复 T_Banners 表的原始约束
-- ========================================
PRINT '正在恢复 T_Banners 表的原始约束...'
-- 删除新约束
IF EXISTS (SELECT * FROM sys.check_constraints WHERE name = 'CK_T_Banners_LinkType')
BEGIN
ALTER TABLE T_Banners DROP CONSTRAINT CK_T_Banners_LinkType;
PRINT '✓ 删除新的 LinkType 约束'
END
-- 恢复原始约束(只支持 1, 2, 3
ALTER TABLE T_Banners ADD CONSTRAINT CK_T_Banners_LinkType CHECK (LinkType IN (1, 2, 3));
PRINT '✓ 恢复原始 LinkType 约束 (1-帖子详情, 2-外部链接, 3-无链接)'
-- ========================================
-- 4. 删除 T_HomePopups 表
-- ========================================
PRINT '正在删除 T_HomePopups 表...'
-- 删除索引
IF EXISTS (SELECT * FROM sys.indexes WHERE name = 'IX_T_HomePopups_IsActive_StartTime_EndTime')
BEGIN
DROP INDEX IX_T_HomePopups_IsActive_StartTime_EndTime ON T_HomePopups;
PRINT '✓ 删除索引 IX_T_HomePopups_IsActive_StartTime_EndTime'
END
IF EXISTS (SELECT * FROM sys.indexes WHERE name = 'IX_T_HomePopups_SortOrder')
BEGIN
DROP INDEX IX_T_HomePopups_SortOrder ON T_HomePopups;
PRINT '✓ 删除索引 IX_T_HomePopups_SortOrder'
END
-- 删除表
IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'T_HomePopups')
BEGIN
DROP TABLE T_HomePopups;
PRINT '✓ 删除 T_HomePopups 表'
END
-- ========================================
-- 5. 验证回滚结果
-- ========================================
PRINT '正在验证回滚结果...'
-- 验证 T_HomePopups 表已删除
IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'T_HomePopups')
PRINT '✓ T_HomePopups 表删除验证通过'
ELSE
PRINT '✗ T_HomePopups 表删除验证失败'
-- 验证约束恢复
IF EXISTS (SELECT * FROM sys.check_constraints WHERE name = 'CK_T_Banners_LinkType' AND definition NOT LIKE '%[LinkType]=(4)%')
PRINT '✓ T_Banners LinkType 约束恢复验证通过'
ELSE
PRINT '✗ T_Banners LinkType 约束恢复验证失败'
-- 验证字典数据删除
IF NOT EXISTS (SELECT * FROM sys_dict_type WHERE DictType = 'liveforum_popup_linktype')
PRINT '✓ 弹窗链接类型字典删除验证通过'
ELSE
PRINT '✗ 弹窗链接类型字典删除验证失败'
-- ========================================
-- 回滚完成
-- ========================================
PRINT ''
PRINT '========================================='
PRINT 'v1.0.1 数据库回滚脚本执行完成!'
PRINT '完成时间: ' + CONVERT(VARCHAR, GETDATE(), 120)
PRINT '========================================='
PRINT ''
PRINT '回滚内容总结:'
PRINT '1. ✓ 删除首页弹窗表 T_HomePopups'
PRINT '2. ✓ 删除相关索引'
PRINT '3. ✓ 恢复 T_Banners 表原始约束'
PRINT '4. ✓ 删除弹窗链接类型字典'
PRINT '5. ✓ 删除 Banner 字典中的通知详情选项'
PRINT ''
PRINT '注意事项:'
PRINT '- 数据库已回滚到 v1.0.1 之前的状态'
PRINT '- 请确保应用程序代码也同步回滚'
PRINT '- 所有相关的弹窗数据已被删除'
PRINT '========================================='