Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save lars-erik/c6aa2d872b1cb1f370503a3772fdcea4 to your computer and use it in GitHub Desktop.
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)
-- 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