feat(bd): V017 crea dbo.ProductType con SYSTEM_VERSIONING + permiso catalogo:tipos:gestionar (PRD-001)
This commit is contained in:
71
database/migrations/V017_ROLLBACK.sql
Normal file
71
database/migrations/V017_ROLLBACK.sql
Normal file
@@ -0,0 +1,71 @@
|
||||
-- V017_ROLLBACK.sql
|
||||
-- Reversa de V017__create_product_type.sql.
|
||||
-- PRD-001: ProductType rollback.
|
||||
--
|
||||
-- ADVERTENCIA: Si PRD-002 ya fue mergeado (IProductQueryRepository real), hacer rollback
|
||||
-- de PRD-002 primero (la interfaz es removida por esta rollback).
|
||||
--
|
||||
-- Idempotente: cada paso usa IF EXISTS guards.
|
||||
|
||||
SET QUOTED_IDENTIFIER ON;
|
||||
SET ANSI_NULLS ON;
|
||||
SET NOCOUNT ON;
|
||||
GO
|
||||
|
||||
-- 1. Desactivar SYSTEM_VERSIONING
|
||||
IF EXISTS (SELECT 1 FROM sys.tables WHERE object_id = OBJECT_ID('dbo.ProductType') AND temporal_type = 2)
|
||||
BEGIN
|
||||
ALTER TABLE dbo.ProductType SET (SYSTEM_VERSIONING = OFF);
|
||||
PRINT 'ProductType: SYSTEM_VERSIONING = OFF.';
|
||||
END
|
||||
GO
|
||||
|
||||
-- 2. Remover PERIOD FOR SYSTEM_TIME
|
||||
IF EXISTS (SELECT 1 FROM sys.periods WHERE object_id = OBJECT_ID('dbo.ProductType'))
|
||||
BEGIN
|
||||
ALTER TABLE dbo.ProductType DROP PERIOD FOR SYSTEM_TIME;
|
||||
PRINT 'ProductType: PERIOD FOR SYSTEM_TIME dropped.';
|
||||
END
|
||||
GO
|
||||
|
||||
-- 3. Remover columnas HIDDEN + default constraints
|
||||
IF COL_LENGTH('dbo.ProductType', 'ValidFrom') IS NOT NULL
|
||||
BEGIN
|
||||
ALTER TABLE dbo.ProductType DROP CONSTRAINT IF EXISTS DF_ProductType_ValidFrom;
|
||||
ALTER TABLE dbo.ProductType DROP CONSTRAINT IF EXISTS DF_ProductType_ValidTo;
|
||||
ALTER TABLE dbo.ProductType DROP COLUMN ValidFrom, ValidTo;
|
||||
PRINT 'ProductType: ValidFrom/ValidTo columns dropped.';
|
||||
END
|
||||
GO
|
||||
|
||||
-- 4. Drop history table
|
||||
IF OBJECT_ID(N'dbo.ProductType_History', N'U') IS NOT NULL
|
||||
BEGIN
|
||||
DROP TABLE dbo.ProductType_History;
|
||||
PRINT 'Table dbo.ProductType_History dropped.';
|
||||
END
|
||||
GO
|
||||
|
||||
-- 5. Drop main table
|
||||
IF OBJECT_ID(N'dbo.ProductType', N'U') IS NOT NULL
|
||||
BEGIN
|
||||
DROP TABLE dbo.ProductType;
|
||||
PRINT 'Table dbo.ProductType dropped.';
|
||||
END
|
||||
GO
|
||||
|
||||
-- 6. Remover RolPermiso para catalogo:tipos:gestionar
|
||||
DELETE rp FROM dbo.RolPermiso rp
|
||||
JOIN dbo.Permiso p ON p.Id = rp.PermisoId
|
||||
WHERE p.Codigo = 'catalogo:tipos:gestionar';
|
||||
PRINT 'RolPermiso rows for catalogo:tipos:gestionar deleted.';
|
||||
GO
|
||||
|
||||
-- 7. Remover Permiso
|
||||
DELETE FROM dbo.Permiso WHERE Codigo = 'catalogo:tipos:gestionar';
|
||||
PRINT 'Permiso catalogo:tipos:gestionar deleted.';
|
||||
GO
|
||||
|
||||
PRINT '';
|
||||
PRINT 'V017 rolled back successfully.';
|
||||
GO
|
||||
Reference in New Issue
Block a user