Forked from enkelmedia/Umbraco - Delete Older Versions.sql
Last active
January 10, 2020 15:21
-
-
Save lars-erik/c6aa2d872b1cb1f370503a3772fdcea4 to your computer and use it in GitHub Desktop.
Remove older content versions from the Umbraco database (tested on v7.9.2)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-- set how many versions to keep on line 21 (rn > n) | |
-- actually delete stuff by modifying line 34 to 'commit tran' | |
begin tran | |
go | |
IF OBJECT_ID('tempdb..#tmp') IS NOT NULL DROP Table #tmp | |
create table #tmp (versionid uniqueidentifier) | |
insert #tmp select versionid from ( | |
select | |
umbracoNode.id, umbracoNode.path, | |
row_number() over ( partition by umbracoNode.id order by cmsDocument.updateDate desc) rn, | |
cmsDocument.* | |
from | |
umbracoNode | |
inner join cmsDocument on cmsDocument.nodeId = umbracoNode.id | |
where | |
nodeObjectType = 'C66BA18E-EAF3-4CFF-8A22-41B16D66A972' | |
) t | |
where | |
rn > 20 | |
and | |
published = 0 | |
DELETE FROM cmsPreviewXml WHERE versionId IN (select #tmp.VersionId from #tmp) | |
DELETE FROM cmsContentVersion WHERE VersionId IN (select #tmp.VersionId from #tmp) | |
DELETE FROM cmsPropertyData WHERE VersionId IN (select #tmp.VersionId from #tmp) | |
DELETE FROM cmsDocument WHERE VersionId IN (select #tmp.VersionId from #tmp) | |
IF OBJECT_ID('tempdb..#tmp') IS NOT NULL DROP Table #tmp | |
go | |
rollback tran |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment