c10fa98d0a
Restore original migrations (001-120) to fix schema_migrations version mismatch * Restore original migrations (001-120) to fix schema_migrations version mismatch The previous migration collapse broke deployed databases because: - Dev database was at version 120 (the real remove_text_extraction migration) - Main had collapsed migrations (001-012) + stub files (119_stub, 120_stub) - The migrate tool couldn't find version 119/120 with matching content This commit restores the original 27 migrations (versions 001-120) from before the collapse, ensuring backward compatibility with existing databases.
100 lines
3.1 KiB
PL/PgSQL
100 lines
3.1 KiB
PL/PgSQL
CREATE TABLE collectorVersions (
|
|
clientId varchar(255) not null,
|
|
id int not null,
|
|
addedAt timestamp not null default current_timestamp,
|
|
foreign key (clientId) references clients(clientId),
|
|
primary key (id, clientId)
|
|
);
|
|
|
|
CREATE OR REPLACE FUNCTION setCollectorVersionNumber()
|
|
RETURNS TRIGGER AS $$
|
|
BEGIN
|
|
SELECT COALESCE(MAX(id), 0) + 1
|
|
INTO NEW.id
|
|
FROM collectorVersions
|
|
WHERE clientId = NEW.clientId;
|
|
|
|
RETURN NEW;
|
|
END;
|
|
$$ LANGUAGE plpgsql;
|
|
|
|
CREATE TRIGGER setCollectorVersionNumberTrigger
|
|
BEFORE INSERT ON collectorVersions
|
|
FOR EACH ROW
|
|
EXECUTE FUNCTION setCollectorVersionNumber();
|
|
|
|
CREATE TABLE collectorActiveVersions (
|
|
id uuid primary key DEFAULT uuid_generate_v7(),
|
|
clientId varchar(255) not null,
|
|
versionId int not null,
|
|
foreign key (clientId, versionId) references collectorVersions(clientId, id)
|
|
);
|
|
|
|
CREATE TABLE collectorMinCleanVersions (
|
|
id uuid primary key DEFAULT uuid_generate_v7(),
|
|
clientId varchar(255) not null,
|
|
versionId bigint not null,
|
|
addedVersion int not null,
|
|
removedVersion int,
|
|
foreign key (clientId, addedVersion) references collectorVersions(clientId, id),
|
|
foreign key (clientId, removedVersion) references collectorVersions(clientId, id),
|
|
foreign key (clientId) references clients(clientId)
|
|
);
|
|
|
|
CREATE OR REPLACE FUNCTION removeMinCleanVersion()
|
|
RETURNS TRIGGER AS $$
|
|
BEGIN
|
|
UPDATE collectorMinCleanVersions
|
|
SET removedVersion = NEW.addedVersion
|
|
WHERE clientId = NEW.clientId and removedVersion is null;
|
|
|
|
RETURN NEW;
|
|
END;
|
|
$$ LANGUAGE plpgsql;
|
|
|
|
CREATE TRIGGER removeMinCleanVersionTrigger
|
|
BEFORE INSERT ON collectorMinCleanVersions
|
|
FOR EACH ROW
|
|
EXECUTE FUNCTION removeMinCleanVersion();
|
|
|
|
CREATE TABLE collectorMinTextVersions (
|
|
id uuid primary key DEFAULT uuid_generate_v7(),
|
|
clientId varchar(255) not null,
|
|
versionId bigint not null,
|
|
addedVersion int not null,
|
|
removedVersion int,
|
|
foreign key (clientId, addedVersion) references collectorVersions(clientId, id),
|
|
foreign key (clientId, removedVersion) references collectorVersions(clientId, id),
|
|
foreign key (clientId) references clients(clientId)
|
|
);
|
|
|
|
CREATE OR REPLACE FUNCTION removeMinTextVersion()
|
|
RETURNS TRIGGER AS $$
|
|
BEGIN
|
|
UPDATE collectorMinTextVersions
|
|
SET removedVersion = NEW.addedVersion
|
|
WHERE clientId = NEW.clientId and removedVersion is null;
|
|
|
|
RETURN NEW;
|
|
END;
|
|
$$ LANGUAGE plpgsql;
|
|
|
|
CREATE TRIGGER removeMinTextVersionTrigger
|
|
BEFORE INSERT ON collectorMinTextVersions
|
|
FOR EACH ROW
|
|
EXECUTE FUNCTION removeMinTextVersion();
|
|
|
|
CREATE TABLE collectorQueries (
|
|
id uuid primary key DEFAULT uuid_generate_v7(),
|
|
clientId varchar(255) not null,
|
|
name varchar(255) not null,
|
|
queryId uuid not null,
|
|
addedVersion int not null,
|
|
removedVersion int,
|
|
foreign key (queryId) references queries(queryId),
|
|
foreign key (clientId) references clients(clientId),
|
|
foreign key (clientId, addedVersion) references collectorVersions(clientId, id),
|
|
foreign key (clientId, removedVersion) references collectorVersions(clientId, id),
|
|
unique (clientId, name, removedVersion)
|
|
);
|