Before you upgrade
Please make sure to perform these steps before you upgrade to 2023.4+. They help ensure that, once the upgrade is done, you can get started in no time, with zero issues.
-
Back up your database to remove any data loss risks.
-
Run the pre-upgrade database maintenance script below.
This script removes all expired or consumed grants from the database. This helps speed up the
[identity].[PersistedGrants]primary key and index re-creation, and, as such, the database migration.DECLARE @Now DATETIME2 = GETUTCDATE()
DECLARE @ConsumedGrantsGracePeriod DATETIME2 = DATEADD(hour, -2, @Now)
DECLARE @ConsumedDeleted int = 1
DECLARE @ExpiredDeleted int = 1
DECLARE @BatchSize int = 500
DECLARE @ConsumedBatchesDeleted int = 0
DECLARE @ExpiredBatchesDeleted int = 0
SET LOCK_TIMEOUT 0
SET DEADLOCK_PRIORITY LOW
WHILE (@ConsumedDeleted=1 OR @ExpiredDeleted=1)
BEGIN
IF @ConsumedDeleted=1
BEGIN
BEGIN TRY
DELETE TOP(@BatchSize) FROM [identity].[PersistedGrants] WHERE [ConsumedTime] IS NOT NULL AND [ConsumedTime] < @ConsumedGrantsGracePeriod AND [Type] <> 'reference_token'
IF @@ROWCOUNT = 0
SET @ConsumedDeleted=0
ELSE
SET @ConsumedBatchesDeleted = @ConsumedBatchesDeleted + 1
END TRY
BEGIN CATCH
PRINT 'Failed to delete consumed grants'
END CATCH
END
IF @ExpiredDeleted=1
BEGIN
BEGIN TRY
DELETE TOP(@BatchSize) FROM [identity].[PersistedGrants] WHERE [Expiration] < @Now AND [Type] <> 'reference_token'
IF @@ROWCOUNT = 0
SET @ExpiredDeleted=0
ELSE
SET @ExpiredBatchesDeleted = @ExpiredBatchesDeleted + 1
END TRY
BEGIN CATCH
PRINT 'Failed to delete expired grants'
END CATCH
END
PRINT 'Consumed batches deleted: ' + CONVERT(nvarchar(32), @ConsumedBatchesDeleted)
PRINT 'Expired batches deleted: ' + CONVERT(nvarchar(32), @ExpiredBatchesDeleted)
-- Wait for 10 seconds between deletes
IF (@ExpiredDeleted=1 OR @ConsumedDeleted=1)
WAITFOR DELAY '00:00:05.000'
END -
Migrate your classic folders to modern folders, so as to ensure uninterrupted executions. These are the changes that you can expect at this point in the classic folders removal process.