Skip to content
Merged
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
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
CREATE TABLE panoramapublic.DatasetStatus
(
_ts TIMESTAMP,
Id SERIAL NOT NULL,
CreatedBy USERID,
Created TIMESTAMP,
ModifiedBy USERID,
Modified TIMESTAMP,

ShortUrl ENTITYID NOT NULL,
LastReminderDate TIMESTAMP,
ExtensionRequestedDate TIMESTAMP,
DeletionRequestedDate TIMESTAMP,

CONSTRAINT PK_DatasetStatus PRIMARY KEY (Id),

CONSTRAINT FK_DatasetStatus_ShortUrl FOREIGN KEY (ShortUrl) REFERENCES core.shorturl (entityId),

CONSTRAINT UQ_DatasetStatus_ShortUrl UNIQUE (ShortUrl)
);
CREATE INDEX IX_DatasetStatus_ShortUrl ON panoramapublic.DatasetStatus(ShortUrl);
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
-- ------------------------------------------------------------------------
-- Replace the ShortUrl column with an ExperimentAnnotationsId column.
-- ------------------------------------------------------------------------

-- Add ExperimentAnnotationsId column as nullable first
ALTER TABLE panoramapublic.DatasetStatus ADD COLUMN ExperimentAnnotationsId INT;

-- Populate the column by matching ShortUrl values
UPDATE panoramapublic.DatasetStatus
SET ExperimentAnnotationsId = ea.Id
FROM panoramapublic.ExperimentAnnotations ea
WHERE ea.ShortUrl = panoramapublic.DatasetStatus.ShortUrl;

-- Delete rows that couldn't be matched (where ExperimentAnnotationsId is still null)
DELETE FROM panoramapublic.DatasetStatus WHERE ExperimentAnnotationsId IS NULL;

-- Now make ExperimentAnnotationsId NOT NULL
ALTER TABLE panoramapublic.DatasetStatus ALTER COLUMN ExperimentAnnotationsId SET NOT NULL;

-- Add constraints and index
ALTER TABLE panoramapublic.DatasetStatus ADD CONSTRAINT FK_DatasetStatus_ExperimentAnnotations FOREIGN KEY (ExperimentAnnotationsId) REFERENCES panoramapublic.ExperimentAnnotations(Id);
ALTER TABLE panoramapublic.DatasetStatus ADD CONSTRAINT UQ_DatasetStatus_ExperimentAnnotations UNIQUE (ExperimentAnnotationsId);
CREATE INDEX IX_DatasetStatus_ExperimentAnnotations ON panoramapublic.DatasetStatus(ExperimentAnnotationsId);

-- Drop old constraints and index
ALTER TABLE panoramapublic.DatasetStatus DROP CONSTRAINT FK_DatasetStatus_ShortUrl;
ALTER TABLE panoramapublic.DatasetStatus DROP CONSTRAINT UQ_DatasetStatus_ShortUrl;
DROP INDEX panoramapublic.IX_DatasetStatus_ShortUrl;

-- Finally drop the ShortUrl column
ALTER TABLE panoramapublic.DatasetStatus DROP COLUMN ShortUrl;

34 changes: 34 additions & 0 deletions panoramapublic/resources/schemas/panoramapublic.xml
Original file line number Diff line number Diff line change
Expand Up @@ -832,4 +832,38 @@
<column columnName="Approved"/>
</columns>
</table>
<table tableName="DatasetStatus" tableDbType="TABLE">
<columns>
<column columnName="_ts">
<isHidden>true</isHidden>
</column>
<column columnName="Created">
<isHidden>true</isHidden>
</column>
<column columnName="CreatedBy">
<fk>
<fkColumnName>UserId</fkColumnName>
<fkDbSchema>core</fkDbSchema>
<fkTable>UsersData</fkTable>
</fk>
<isHidden>true</isHidden>
</column>
<column columnName="Modified">
<isHidden>true</isHidden>
</column>
<column columnName="ModifiedBy">
<fk>
<fkColumnName>UserId</fkColumnName>
<fkDbSchema>core</fkDbSchema>
<fkTable>UsersData</fkTable>
</fk>
<isHidden>true</isHidden>
</column>
<column columnName="Id"/>
<column columnName="ExperimentAnnotationsId" />
<column columnName="LastReminderDate" />
<column columnName="ExtensionRequestedDate" />
<column columnName="DeletionRequestedDate"/>
</columns>
</table>
</tables>
Loading
Loading