Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 29 additions & 1 deletion SQL/0000-00-00-schema.sql
Original file line number Diff line number Diff line change
Expand Up @@ -585,6 +585,30 @@ INSERT INTO `mri_scan_type` VALUES
(999,'unknown'),
(1000,'NA');

CREATE TABLE `bids_dataset` (
`ID` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`Path` VARCHAR(255) NOT NULL,
`InsertTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`UpdateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`ID`),
UNIQUE KEY `bids_dataset_path_unique` (`Path`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE `bids_file` (
`ID` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`DatasetID` INT(10) UNSIGNED NOT NULL,
`Path` VARCHAR(255) NOT NULL,
`SourcePath` VARCHAR(255) NULL,
`InsertTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`Blake2bHash` CHAR(128) NOT NULL,
`Derivative` TINYINT(1) NOT NULL,
PRIMARY KEY (`ID`),
UNIQUE KEY `bids_file_dataset_id_path_unique` (`DatasetID`, `Path`),
KEY `bids_file_dataset_id_fk_idx` (`DatasetID`),
CONSTRAINT `bids_file_dataset_id_fk`
FOREIGN KEY (`DatasetID`) REFERENCES `bids_dataset` (`ID`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE `files` (
`FileID` int(10) unsigned NOT NULL auto_increment,
`SessionID` int(10) unsigned NOT NULL,
Expand All @@ -609,6 +633,7 @@ CREATE TABLE `files` (
`ScannerID` int(10) unsigned default NULL,
`AcqOrderPerModality` int(11) default NULL,
`AcquisitionDate` date default NULL,
`BidsInfoID` int(10) unsigned DEFAULT NULL,
PRIMARY KEY (`FileID`),
KEY `file` (`File`),
KEY `sessionid` (`SessionID`),
Expand All @@ -618,14 +643,17 @@ CREATE TABLE `files` (
KEY `scannerid` (`ScannerID`),
KEY `tarchivesource` (`TarchiveSource`),
KEY `FK_files_HrrtArchiveID_1` (`HrrtArchiveID`),
KEY `files_bids_info_id_fk_idx` (`BidsInfoID`),
CONSTRAINT `FK_files_2` FOREIGN KEY (`MriScanTypeID`) REFERENCES `mri_scan_type` (`MriScanTypeID`),
CONSTRAINT `FK_files_1` FOREIGN KEY (`SessionID`) REFERENCES `session` (`ID`),
CONSTRAINT `FK_files_3` FOREIGN KEY (`SourceFileID`) REFERENCES `files` (`FileID`),
CONSTRAINT `FK_files_4` FOREIGN KEY (`ProcessProtocolID`) REFERENCES `mri_processing_protocol` (`ProcessProtocolID`),
CONSTRAINT `FK_files_FileTypes` FOREIGN KEY (`FileType`) REFERENCES `ImagingFileTypes`(`type`),
CONSTRAINT `FK_files_scannerID` FOREIGN KEY (`ScannerID`) REFERENCES `mri_scanner` (`ID`),
CONSTRAINT `FK_files_TarchiveID` FOREIGN KEY (`TarchiveSource`) REFERENCES `tarchive` (`TarchiveID`),
CONSTRAINT `FK_files_HrrtArchiveID` FOREIGN KEY (`HrrtArchiveID`) REFERENCES `hrrt_archive` (`HrrtArchiveID`)
CONSTRAINT `FK_files_HrrtArchiveID` FOREIGN KEY (`HrrtArchiveID`) REFERENCES `hrrt_archive` (`HrrtArchiveID`),
CONSTRAINT `files_bids_info_id_fk`
FOREIGN KEY (`BidsInfoID`) REFERENCES `bids_file` (`ID`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `files_intermediary` (
Expand Down
24 changes: 21 additions & 3 deletions SQL/0000-00-05-ElectrophysiologyTables.sql
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,14 @@ CREATE TABLE `meg_ctf_head_shape_file` (
`ID` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`Path` VARCHAR(255) NOT NULL,
`Blake2bHash` VARCHAR(128) NOT NULL,
PRIMARY KEY (`ID`)
`BidsInfoID` INT(10) UNSIGNED DEFAULT NULL,
`InsertTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`ID`),
KEY `meg_ctf_head_shape_file_bids_info_id_fk_idx` (`BidsInfoID`),
CONSTRAINT `meg_ctf_head_shape_file_bids_info_id_fk`
FOREIGN KEY (`BidsInfoID`)
REFERENCES `bids_file` (`ID`)
ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- Create a meg_ctf_head_shape_point table
Expand Down Expand Up @@ -57,7 +64,9 @@ CREATE TABLE `physiological_file` (
`Index` INT(5) DEFAULT NULL,
`ParentID` INT(10) unsigned DEFAULT NULL,
`HeadShapeFileID` INT(10) unsigned DEFAULT NULL,
`BidsInfoID` INT(10) unsigned DEFAULT NULL,
PRIMARY KEY (`PhysiologicalFileID`),
KEY `physiological_file_bids_info_id_fk_idx` (`BidsInfoID`),
CONSTRAINT `FK_session_ID`
FOREIGN KEY (`SessionID`)
REFERENCES `session` (`ID`),
Expand All @@ -73,9 +82,14 @@ CREATE TABLE `physiological_file` (
CONSTRAINT `FK_ParentID`
FOREIGN KEY (`ParentID`)
REFERENCES `physiological_file` (`PhysiologicalFileID`),
CONSTRAINT `FK_head_shape_HeadShapeFileID`
CONSTRAINT `physiological_file_head_shape_file_id_fk`
FOREIGN KEY (`HeadShapeFileID`)
REFERENCES `meg_ctf_head_shape_file` (`ID`)
ON DELETE SET NULL,
CONSTRAINT `physiological_file_bids_info_id_fk`
FOREIGN KEY (`BidsInfoID`)
REFERENCES `bids_file` (`ID`)
ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


Expand Down Expand Up @@ -307,12 +321,16 @@ CREATE TABLE `physiological_event_file` (
`FilePath` varchar(255) DEFAULT NULL,
`LastUpdate` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`LastWritten` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`BidsInfoID` int(10) unsigned DEFAULT NULL,
PRIMARY KEY (`EventFileID`),
KEY `FK_physio_file_ID` (`PhysiologicalFileID`),
KEY `FK_event_file_type` (`FileType`),
KEY `physiological_event_file_bids_info_id_fk_idx` (`BidsInfoID`),
CONSTRAINT `FK_event_file_type` FOREIGN KEY (`FileType`) REFERENCES `ImagingFileTypes` (`type`),
CONSTRAINT `FK_physio_file_ID` FOREIGN KEY (`PhysiologicalFileID`) REFERENCES `physiological_file` (`PhysiologicalFileID`),
CONSTRAINT `FK_pef_project_ID` FOREIGN KEY (`ProjectID`) REFERENCES `Project` (`ProjectID`)
CONSTRAINT `FK_pef_project_ID` FOREIGN KEY (`ProjectID`) REFERENCES `Project` (`ProjectID`),
CONSTRAINT `physiological_event_file_bids_info_id_fk`
FOREIGN KEY (`BidsInfoID`) REFERENCES `bids_file` (`ID`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
;

Expand Down
85 changes: 85 additions & 0 deletions SQL/New_patches/2026-08-12-bids-dataset-tables.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
CREATE TABLE `bids_dataset` (
`ID` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`Path` VARCHAR(255) NOT NULL,
`InsertTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`UpdateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`ID`),
UNIQUE KEY `bids_dataset_path_unique` (`Path`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE `bids_file` (
`ID` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`DatasetID` INT(10) UNSIGNED NOT NULL,
`Path` VARCHAR(255) NOT NULL,
`SourcePath` VARCHAR(255) NULL,
`InsertTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`Blake2bHash` CHAR(128) NOT NULL,
`Derivative` TINYINT(1) NOT NULL,
PRIMARY KEY (`ID`),
UNIQUE KEY `bids_file_dataset_id_path_unique` (`DatasetID`, `Path`),
KEY `bids_file_dataset_id_fk_idx` (`DatasetID`),
CONSTRAINT `bids_file_dataset_id_fk`
FOREIGN KEY (`DatasetID`) REFERENCES `bids_dataset` (`ID`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

ALTER TABLE `files`
ADD COLUMN `BidsInfoID` INT(10) UNSIGNED NULL,
ADD KEY `files_bids_info_id_fk_idx` (`BidsInfoID`),
ADD CONSTRAINT `files_bids_info_id_fk`
FOREIGN KEY (`BidsInfoID`) REFERENCES `bids_file` (`ID`) ON DELETE SET NULL;

ALTER TABLE `physiological_file`
ADD COLUMN `BidsInfoID` INT(10) UNSIGNED NULL,
ADD KEY `physiological_file_bids_info_id_fk_idx` (`BidsInfoID`),
ADD CONSTRAINT `physiological_file_bids_info_id_fk`
FOREIGN KEY (`BidsInfoID`) REFERENCES `bids_file` (`ID`) ON DELETE SET NULL;

ALTER TABLE `physiological_event_file`
ADD COLUMN `BidsInfoID` INT(10) UNSIGNED NULL,
ADD KEY `physiological_event_file_bids_info_id_fk_idx` (`BidsInfoID`),
ADD CONSTRAINT `physiological_event_file_bids_info_id_fk`
FOREIGN KEY (`BidsInfoID`) REFERENCES `bids_file` (`ID`) ON DELETE SET NULL;

ALTER TABLE `meg_ctf_head_shape_file`
ADD COLUMN `BidsInfoID` INT(10) UNSIGNED NULL,
ADD COLUMN `InsertTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
ADD KEY `meg_ctf_head_shape_file_bids_info_id_fk_idx` (`BidsInfoID`),
ADD CONSTRAINT `meg_ctf_head_shape_file_bids_info_id_fk`
FOREIGN KEY (`BidsInfoID`) REFERENCES `bids_file` (`ID`) ON DELETE SET NULL;

ALTER TABLE `physiological_file`
DROP FOREIGN KEY `physiological_file_head_shape_file_id_fk`,
ADD CONSTRAINT `physiological_file_head_shape_file_id_fk`
FOREIGN KEY (`HeadShapeFileID`) REFERENCES `meg_ctf_head_shape_file` (`ID`) ON DELETE SET NULL;

/* Revert patch

ALTER TABLE `physiological_file`
DROP FOREIGN KEY `physiological_file_head_shape_file_id_fk`,
ADD CONSTRAINT `physiological_file_head_shape_file_id_fk`
FOREIGN KEY (`HeadShapeFileID`) REFERENCES `meg_ctf_head_shape_file` (`ID`);

ALTER TABLE `meg_ctf_head_shape_file`
DROP FOREIGN KEY `meg_ctf_head_shape_file_bids_info_id_fk`,
DROP KEY `meg_ctf_head_shape_file_bids_info_id_fk_idx`,
DROP COLUMN `InsertTime`,
DROP COLUMN `BidsInfoID`;

ALTER TABLE `physiological_event_file`
DROP FOREIGN KEY `physiological_event_file_bids_info_id_fk`,
DROP KEY `physiological_event_file_bids_info_id_fk_idx`,
DROP COLUMN `BidsInfoID`;

ALTER TABLE `physiological_file`
DROP FOREIGN KEY `physiological_file_bids_info_id_fk`,
DROP KEY `physiological_file_bids_info_id_fk_idx`,
DROP COLUMN `BidsInfoID`;

ALTER TABLE `files`
DROP FOREIGN KEY `files_bids_info_id_fk`,
DROP KEY `files_bids_info_id_fk_idx`,
DROP COLUMN `BidsInfoID`;

DROP TABLE `bids_file`;

DROP TABLE `bids_dataset`; */
Loading