DIRAC icon indicating copy to clipboard operation
DIRAC copied to clipboard

[9.1] feat: added foreign keys to PilotAgentsDB

Open fstagni opened this issue 1 year ago • 0 comments

For https://github.com/DIRACGrid/diracx/issues/414

  • [ ] add to Wiki + update guide
use PilotAgentsDB;
ALTER TABLE `JobToPilotMapping` ADD CONSTRAINT `fk_JobToPilot_PilotID` FOREIGN KEY (`PilotID`) REFERENCES `PilotAgents`(`PilotID`) ON DELETE CASCADE;
ALTER TABLE `PilotOutput` ADD CONSTRAINT `fk_PilotOutput_PilotID` FOREIGN KEY (`PilotID`) REFERENCES `PilotAgents`(`PilotID`) ON DELETE CASCADE;

use SandboxMetadataDB;
ALTER TABLE `sb_EntityMapping` ADD CONSTRAINT `fk_EntityToSB_SBId` FOREIGN KEY (`SBId`) REFERENCES `sb_SandBoxes`(`SBId`) ON DELETE CASCADE;
ALTER TABLE `sb_EntityMapping` MODIFY COLUMN `Type` ENUM("Input", "Output") NOT NULL;

use TaskQueueDB;
ALTER TABLE `tq_TQToBannedSites` MODIFY CONSTRAINT `tq_TQToBannedSites_ibfk_1` FOREIGN KEY (`TQId`) REFERENCES `tq_TaskQueues` (`TQId`) ON DELETE CASCADE ON UPDATE RESTRICT;
ALTER TABLE `tq_TQToGridCEs` MODIFY CONSTRAINT `tq_TQToGridCEs_ibfk_1` FOREIGN KEY (`TQId`) REFERENCES `tq_TaskQueues` (`TQId`) ON DELETE CASCADE ON UPDATE RESTRICT;
ALTER TABLE `tq_TQToGridMiddlewares` MODIFY CONSTRAINT `tq_TQToGridMiddlewares_ibfk_1` FOREIGN KEY (`TQId`) REFERENCES `tq_TaskQueues` (`TQId`) ON DELETE CASCADE ON UPDATE RESTRICT;
ALTER TABLE `tq_TQToJobTypes` MODIFY CONSTRAINT `tq_TQToJobTypes_ibfk_1` FOREIGN KEY (`TQId`) REFERENCES `tq_TaskQueues` (`TQId`) ON DELETE CASCADE ON UPDATE RESTRICT;
ALTER TABLE `tq_TQToPilotTypes` MODIFY CONSTRAINT `tq_TQToPilotTypes_ibfk_1` FOREIGN KEY (`TQId`) REFERENCES `tq_TaskQueues` (`TQId`) ON DELETE CASCADE ON UPDATE RESTRICT;
ALTER TABLE `tq_TQToPlatforms` MODIFY CONSTRAINT `tq_TQToPlatforms_ibfk_1` FOREIGN KEY (`TQId`) REFERENCES `tq_TaskQueues` (`TQId`) ON DELETE CASCADE ON UPDATE RESTRICT;
ALTER TABLE `tq_TQToSites` MODIFY CONSTRAINT `tq_TQToSites_ibfk_1` FOREIGN KEY (`TQId`) REFERENCES `tq_TaskQueues` (`TQId`) ON DELETE CASCADE ON UPDATE RESTRICT;
ALTER TABLE `tq_TQToTags` MODIFY CONSTRAINT `tq_TQToTags_ibfk_1` FOREIGN KEY (`TQId`) REFERENCES `tq_TaskQueues` (`TQId`) ON DELETE CASCADE ON UPDATE RESTRICT;

ALTER TABLE `tq_Jobs` MODIFY CONSTRAINT `tq_Jobs_ibfk_1` FOREIGN KEY (`TQId`) REFERENCES `tq_TaskQueues` (`TQId`) ON DELETE CASCADE ON UPDATE RESTRICT;
  • [ ] check for tq_jobs ON DELETE CASCADE
  • [ ] port to DiracX

BEGINRELEASENOTES

*WMS CHANGE: add foreign keys to PilotAgentsDB and SandboxMetadataDB

*Core CHANGE: MySQL: use ON DELETE CASCADE for foreign keys by default

ENDRELEASENOTES

The issue with PilotWrapper should be fixed with https://github.com/DIRACGrid/Pilot/pull/251 (still to be merged to master branch...)

fstagni avatar Mar 20 '25 14:03 fstagni