1
0
mirror of https://github.com/bitwarden/server.git synced 2025-05-22 20:11:04 -05:00

fix login uris in batches

This commit is contained in:
Kyle Spearrin 2018-03-12 09:17:20 -04:00
parent 688d344f90
commit 5907d174ba

View File

@ -14,11 +14,38 @@
} }
*/ */
DECLARE @UrisPath VARCHAR(50) = '$.Uris' IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'CompletedIds')
BEGIN
CREATE TABLE [CompletedIds] ([Id] UNIQUEIDENTIFIER PRIMARY KEY)
END
GO
UPDATE DECLARE @UrisPath VARCHAR(50) = '$.Uris'
[dbo].[Cipher] DECLARE @BatchSize INT = 1000
SET
WHILE @BatchSize > 0
BEGIN
SELECT TOP 1
@LastId = [Id]
FROM
[CompletedIds]
ORDER BY
[Id] DESC
;WITH [CTE] AS (
SELECT TOP (@BatchSize)
*
FROM
[Cipher]
WHERE
(@LastId IS NULL OR [Id] > @LastId)
AND LEFT(JSON_VALUE([Data], @UrisPath), 8) = '[{"Uri":'
ORDER BY
[Id] ASC
)
UPDATE
[CTE]
SET
[Data] = JSON_MODIFY( [Data] = JSON_MODIFY(
[Data], [Data],
@UrisPath, @UrisPath,
@ -27,6 +54,15 @@ SET
'$' '$'
) )
) )
WHERE OUTPUT INSERTED.[Id] INTO [CompletedIds]
LEFT(JSON_VALUE([Data], @UrisPath), 8) = '[{"Uri":'
SET @BatchSize = @@ROWCOUNT
RAISERROR('Updated %d ciphers with Uris', 0, 1, @BatchSize) WITH NOWAIT
END
GO
IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'CompletedIds')
BEGIN
DROP TABLE [CompletedIds]
END
GO GO