Mercurial > hg > orthanc-databases
diff PostgreSQL/Plugins/PostgreSQLIndex.cpp @ 366:cd9521e04249 attach-custom-data
DatabaseBackendAdapterV4: added support for customData + revision when not already done
author | Alain Mazy <am@osimis.io> |
---|---|
date | Thu, 15 Sep 2022 18:12:34 +0200 |
parents | c0c12b3974b2 |
children | f18e46d7dbf8 |
line wrap: on
line diff
--- a/PostgreSQL/Plugins/PostgreSQLIndex.cpp Tue Jul 05 08:44:26 2022 +0200 +++ b/PostgreSQL/Plugins/PostgreSQLIndex.cpp Thu Sep 15 18:12:34 2022 +0200 @@ -294,6 +294,49 @@ t.GetDatabaseTransaction().ExecuteMultiLines("ALTER TABLE AttachedFiles ADD COLUMN revision INTEGER"); } + // new in v 4.X + if (!db.DoesColumnExist("DeletedFiles", "revision")) + { + t.GetDatabaseTransaction().ExecuteMultiLines("ALTER TABLE DeletedFiles ADD COLUMN revision INTEGER"); + } + + if (!db.DoesColumnExist("AttachedFiles", "customData")) + { + t.GetDatabaseTransaction().ExecuteMultiLines("ALTER TABLE AttachedFiles ADD COLUMN customData TEXT"); + } + + if (!db.DoesColumnExist("DeletedFiles", "customData")) + { + // add the column and modify the trigger + t.GetDatabaseTransaction().ExecuteMultiLines("ALTER TABLE DeletedFiles ADD COLUMN customData TEXT"); + + t.GetDatabaseTransaction().ExecuteMultiLines( + "DROP TRIGGER AttachedFileDeleted ON AttachedFiles"); + + t.GetDatabaseTransaction().ExecuteMultiLines( + "DROP FUNCTION AttachedFileDeletedFunc"); + + t.GetDatabaseTransaction().ExecuteMultiLines( + "CREATE FUNCTION AttachedFileDeletedFunc() " + "RETURNS TRIGGER AS $body$" + "BEGIN" + " INSERT INTO DeletedFiles VALUES" + " (old.uuid, old.filetype, old.compressedSize," + " old.uncompressedSize, old.compressionType," + " old.uncompressedHash, old.compressedHash," + " old.revision, old.customData);" + " RETURN NULL;" + "END;" + "$body$ LANGUAGE plpgsql;"); + + t.GetDatabaseTransaction().ExecuteMultiLines( + "CREATE TRIGGER AttachedFileDeleted " + "AFTER DELETE ON AttachedFiles " + "FOR EACH ROW " + "EXECUTE PROCEDURE AttachedFileDeletedFunc();" + ); + } + t.Commit(); } }