Archiving Framework
$ git clone https://bitbucket.org/vggdev/archivingframework/src/master/
{ "sourceDatabaseName": "IdentityServer", "targetDatabaseName": "IdentityServer_Archive", "tablesDefinition": [{ "tableName": "LoginRecords", "timestampColumn": "Timestamp", "selectQuery": "SELECT * FROM [IdentityServer].[dbo].[LoginRecords] WHERE [TimeStamp] between @minDate and @maxDate", "deleteQuery": ["DECLARE @Deleted_Rows INT; SET @Deleted_Rows = 1; WHILE (@Deleted_Rows > 0) BEGIN BEGIN TRANSACTION DELETE TOP (1000) [IdentityServer].[dbo].[LoginRecords] WHERE [TimeStamp] between @minDate and @maxDate SET @Deleted_Rows = @@ROWCOUNT; COMMIT TRANSACTION CHECKPOINT END"], "minDateQuery": "SELECT min(Timestamp) as minDate FROM [IdentityServer].[dbo].[LoginRecords]", "monthsFromMinDate": 1 }, { "tableName": "Audit", "timestampColumn": "TimeStamp", "selectQuery": "select * FROM [IdentityServer].[dbo].[Audit] WHERE [TimeStamp] between @minDate and @maxDate", "deleteQuery": ["DECLARE @Deleted_Rows INT; SET @Deleted_Rows = 1; WHILE (@Deleted_Rows > 0) BEGIN BEGIN TRANSACTION DELETE TOP (1000) [IdentityServer].[dbo].[Audit] WHERE [TimeStamp] between @minDate and @maxDate SET @Deleted_Rows = @@ROWCOUNT; COMMIT TRANSACTION CHECKPOINT END"], "minDateQuery": "SELECT min(Timestamp) as minDate FROM [IdentityServer].[dbo].[Audit]", "monthsFromMinDate": 1 } ] }def archiveId = UUID.randomUUID().toString() pipeline { agent any tools { nodejs "Nodejs" } environment { ARCHIVE_ID = "${archiveId}" SQL_CONNECTION_STRING = credentials('sso_sql_prod_connection_string') MONGODB_CONNECTION_STRING = credentials('sso_mongo_prod_connection_string') } stages { stage('Setup') { steps { sh 'npm install' } } stage('Initialize') { steps { sh 'node autoArchive.js' } } } }
Last updated