Skip to content

Conversation

fstagni
Copy link
Contributor

@fstagni fstagni commented Mar 20, 2025

For DIRACGrid/diracx#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 DIRACGrid/Pilot#251 (still to be merged to master branch...)

@fstagni fstagni force-pushed the 90_pilotAgentsDB_foreignKeys branch from 1ba957c to 808e29e Compare March 21, 2025 08:49
@fstagni fstagni marked this pull request as ready for review March 21, 2025 15:31
@fstagni fstagni requested a review from atsareg as a code owner March 21, 2025 15:31
cmdList.append(
"FOREIGN KEY ( `%s` ) REFERENCES `%s` ( `%s` )"
" ON DELETE RESTRICT" % (key, forTable, forKey)
" ON DELETE CASCADE" % (key, forTable, forKey)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this should not be the default.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Elaborate why. It only affects TaskQueueDB and SandboxMetadataDB

@fstagni fstagni marked this pull request as draft March 27, 2025 12:55
@fstagni fstagni changed the title [9.0] feat: added foreign keys to PilotAgentsDB [9.1?] feat: added foreign keys to PilotAgentsDB Jun 12, 2025
@fstagni fstagni changed the title [9.1?] feat: added foreign keys to PilotAgentsDB [9.1] feat: added foreign keys to PilotAgentsDB Jul 16, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants