feat(infra): V009 migration + Usuario.WithPermisosJson + SqlTestFixture V009 schema [UDT-009]
This commit is contained in:
43
database/migrations/V009__activate_permisos_overrides.sql
Normal file
43
database/migrations/V009__activate_permisos_overrides.sql
Normal file
@@ -0,0 +1,43 @@
|
||||
-- V009__activate_permisos_overrides.sql
|
||||
-- Activates Usuario.PermisosJson as explicit overrides {grant, deny} on top of role permissions.
|
||||
-- Idempotent: safe to run multiple times.
|
||||
|
||||
SET QUOTED_IDENTIFIER ON;
|
||||
SET ANSI_NULLS ON;
|
||||
GO
|
||||
|
||||
-- 1. Drop old default constraint if it exists (handles any previous shape)
|
||||
IF EXISTS (
|
||||
SELECT 1 FROM sys.default_constraints
|
||||
WHERE name = 'DF_Usuario_Permisos'
|
||||
AND parent_object_id = OBJECT_ID('dbo.Usuario')
|
||||
)
|
||||
BEGIN
|
||||
ALTER TABLE dbo.Usuario DROP CONSTRAINT DF_Usuario_Permisos;
|
||||
PRINT 'Dropped DF_Usuario_Permisos.';
|
||||
END
|
||||
GO
|
||||
|
||||
-- 2. Re-add default constraint with canonical shape
|
||||
IF NOT EXISTS (
|
||||
SELECT 1 FROM sys.default_constraints
|
||||
WHERE name = 'DF_Usuario_Permisos'
|
||||
AND parent_object_id = OBJECT_ID('dbo.Usuario')
|
||||
)
|
||||
BEGIN
|
||||
ALTER TABLE dbo.Usuario
|
||||
ADD CONSTRAINT DF_Usuario_Permisos
|
||||
DEFAULT('{"grant":[],"deny":[]}') FOR PermisosJson;
|
||||
PRINT 'Added DF_Usuario_Permisos with new shape {"grant":[],"deny":[]}.';
|
||||
END
|
||||
GO
|
||||
|
||||
-- 3. Migrate legacy values to new canonical shape
|
||||
UPDATE dbo.Usuario
|
||||
SET PermisosJson = '{"grant":[],"deny":[]}'
|
||||
WHERE PermisosJson IN ('[]', '["*"]', '')
|
||||
OR PermisosJson IS NULL
|
||||
OR LTRIM(RTRIM(PermisosJson)) = '';
|
||||
|
||||
PRINT 'Migrated legacy PermisosJson rows to canonical shape.';
|
||||
GO
|
||||
Reference in New Issue
Block a user