1
0
mirror of https://github.com/bitwarden/server.git synced 2025-01-22 21:51:22 +01:00

new grant cleanup sproc

This commit is contained in:
Kyle Spearrin 2018-07-20 23:08:10 -04:00
parent c227beb510
commit 4c399aaf0d
4 changed files with 61 additions and 0 deletions

View File

@ -228,5 +228,6 @@
<Build Include="dbo\Stored Procedures\CollectionCipher_UpdateCollectionsForCiphers.sql" />
<Build Include="dbo\Stored Procedures\User_ReadByPremiumRenewal.sql" />
<Build Include="dbo\Stored Procedures\User_UpdateRenewalReminderDate.sql" />
<Build Include="dbo\Stored Procedures\Grant_DeleteExpired.sql" />
</ItemGroup>
</Project>

View File

@ -0,0 +1,19 @@
CREATE PROCEDURE [dbo].[Grant_DeleteExpired]
AS
BEGIN
SET NOCOUNT ON
DECLARE @BatchSize INT = 100
DECLARE @Now DATETIME2(7) = GETUTCDATE()
WHILE @BatchSize > 0
BEGIN
DELETE TOP(@BatchSize)
FROM
[dbo].[Grant]
WHERE
[ExpirationDate] < @Now
SET @BatchSize = @@ROWCOUNT
END
END

View File

@ -14,3 +14,7 @@ GO
CREATE NONCLUSTERED INDEX [IX_Grant_SubjectId_ClientId_Type]
ON [dbo].[Grant]([SubjectId] ASC, [ClientId] ASC, [Type] ASC);
GO
CREATE NONCLUSTERED INDEX [IX_Grant_ExpirationDate]
ON [dbo].[Grant]([ExpirationDate] ASC);

View File

@ -17,6 +17,16 @@ BEGIN
END
GO
IF NOT EXISTS (
SELECT * FROM sys.indexes WHERE [Name]='IX_Grant_ExpirationDate'
AND object_id = OBJECT_ID('[dbo].[Grant]')
)
BEGIN
CREATE NONCLUSTERED INDEX [IX_Grant_ExpirationDate]
ON [dbo].[Grant]([ExpirationDate] ASC)
END
GO
IF EXISTS(SELECT * FROM sys.views WHERE [Name] = 'UserView')
BEGIN
DROP VIEW [dbo].[UserView]
@ -31,6 +41,33 @@ FROM
[dbo].[User]
GO
IF OBJECT_ID('[dbo].[Grant_DeleteExpired]') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[Grant_DeleteExpired]
END
GO
CREATE PROCEDURE [dbo].[Grant_DeleteExpired]
AS
BEGIN
SET NOCOUNT ON
DECLARE @BatchSize INT = 100
DECLARE @Now DATETIME2(7) = GETUTCDATE()
WHILE @BatchSize > 0
BEGIN
DELETE TOP(@BatchSize)
FROM
[dbo].[Grant]
WHERE
[ExpirationDate] < @Now
SET @BatchSize = @@ROWCOUNT
END
END
GO
IF OBJECT_ID('[dbo].[User_Create]') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[User_Create]