Files
labca/db_migrations.patch
2021-05-20 18:47:39 +02:00

238 lines
8.6 KiB
Diff

diff --git a/sa/_db/migrations/20210223140000_CombinedSchema.sql b/sa/_db/migrations/20210223140000_CombinedSchema.sql
index f9705d01..783c371e 100644
--- a/sa/_db/migrations/20210223140000_CombinedSchema.sql
+++ b/sa/_db/migrations/20210223140000_CombinedSchema.sql
@@ -1,7 +1,9 @@
-- +goose Up
-- SQL in section 'Up' is executed when this migration is applied
-CREATE TABLE `authz2` (
+DROP TABLE IF EXISTS `authz`;
+
+CREATE TABLE IF NOT EXISTS `authz2` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`identifierType` tinyint(4) NOT NULL,
`identifierValue` varchar(255) NOT NULL,
@@ -21,7 +23,7 @@ CREATE TABLE `authz2` (
KEY `expires_idx` (`expires`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-CREATE TABLE `blockedKeys` (
+CREATE TABLE IF NOT EXISTS `blockedKeys` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`keyHash` binary(32) NOT NULL,
`added` datetime NOT NULL,
@@ -34,7 +36,7 @@ CREATE TABLE `blockedKeys` (
KEY `extantCertificatesChecked_idx` (`extantCertificatesChecked`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-CREATE TABLE `certificateStatus` (
+CREATE TABLE IF NOT EXISTS `certificateStatus` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`serial` varchar(255) NOT NULL,
`subscriberApproved` tinyint(1) DEFAULT 0,
@@ -54,7 +56,7 @@ CREATE TABLE `certificateStatus` (
KEY `notAfter_idx` (`notAfter`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-CREATE TABLE `certificatesPerName` (
+CREATE TABLE IF NOT EXISTS `certificatesPerName` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`eTLDPlusOne` varchar(255) NOT NULL,
`time` datetime NOT NULL,
@@ -63,14 +65,9 @@ CREATE TABLE `certificatesPerName` (
UNIQUE KEY `eTLDPlusOne_time_idx` (`eTLDPlusOne`,`time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-CREATE TABLE `crls` (
- `serial` varchar(255) NOT NULL,
- `createdAt` datetime NOT NULL,
- `crl` varchar(255) NOT NULL,
- PRIMARY KEY (`serial`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+DROP TABLE IF EXISTS `crls`;
-CREATE TABLE `fqdnSets` (
+CREATE TABLE IF NOT EXISTS `fqdnSets` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`setHash` binary(32) NOT NULL,
`serial` varchar(255) NOT NULL,
@@ -81,7 +78,7 @@ CREATE TABLE `fqdnSets` (
KEY `setHash_issued_idx` (`setHash`,`issued`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-CREATE TABLE `issuedNames` (
+CREATE TABLE IF NOT EXISTS `issuedNames` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`reversedName` varchar(640) CHARACTER SET ascii NOT NULL,
`notBefore` datetime NOT NULL,
@@ -92,7 +89,7 @@ CREATE TABLE `issuedNames` (
KEY `reversedName_renewal_notBefore_Idx` (`reversedName`,`renewal`,`notBefore`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-CREATE TABLE `keyHashToSerial` (
+CREATE TABLE IF NOT EXISTS `keyHashToSerial` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`keyHash` binary(32) NOT NULL,
`certNotAfter` datetime NOT NULL,
@@ -102,7 +99,7 @@ CREATE TABLE `keyHashToSerial` (
KEY `keyHash_certNotAfter` (`keyHash`,`certNotAfter`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-CREATE TABLE `newOrdersRL` (
+CREATE TABLE IF NOT EXISTS `newOrdersRL` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`regID` bigint(20) NOT NULL,
`time` datetime NOT NULL,
@@ -111,14 +108,16 @@ CREATE TABLE `newOrdersRL` (
UNIQUE KEY `regID_time_idx` (`regID`,`time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-CREATE TABLE `orderToAuthz2` (
+DROP TABLE IF EXISTS `orderToAuthz`;
+
+CREATE TABLE IF NOT EXISTS `orderToAuthz2` (
`orderID` bigint(20) NOT NULL,
`authzID` bigint(20) NOT NULL,
PRIMARY KEY (`orderID`,`authzID`),
KEY `authzID` (`authzID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-CREATE TABLE `orders` (
+CREATE TABLE IF NOT EXISTS `orders` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`registrationID` bigint(20) NOT NULL,
`expires` datetime NOT NULL,
@@ -131,7 +130,9 @@ CREATE TABLE `orders` (
KEY `regID_created_idx` (`registrationID`,`created`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-CREATE TABLE `registrations` (
+DROP TABLE IF EXISTS `pendingAuthorizations`;
+
+CREATE TABLE IF NOT EXISTS `registrations` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`jwk` mediumblob NOT NULL,
`jwk_sha256` varchar(255) NOT NULL,
@@ -148,7 +149,7 @@ CREATE TABLE `registrations` (
-- Tables below have foreign key constraints, so are created after all other tables.
-CREATE TABLE `certificates` (
+CREATE TABLE IF NOT EXISTS `certificates` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`registrationID` bigint(20) NOT NULL,
`serial` varchar(255) NOT NULL,
@@ -163,7 +164,7 @@ CREATE TABLE `certificates` (
CONSTRAINT `regId_certificates` FOREIGN KEY (`registrationID`) REFERENCES `registrations` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-CREATE TABLE `orderFqdnSets` (
+CREATE TABLE IF NOT EXISTS `orderFqdnSets` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`setHash` binary(32) NOT NULL,
`orderID` bigint(20) NOT NULL,
@@ -177,7 +178,7 @@ CREATE TABLE `orderFqdnSets` (
CONSTRAINT `orderFqdnSets_registrationID_registrations` FOREIGN KEY (`registrationID`) REFERENCES `registrations` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-CREATE TABLE `precertificates` (
+CREATE TABLE IF NOT EXISTS `precertificates` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`registrationID` bigint(20) NOT NULL,
`serial` varchar(255) NOT NULL,
@@ -191,7 +192,7 @@ CREATE TABLE `precertificates` (
CONSTRAINT `regId_precertificates` FOREIGN KEY (`registrationID`) REFERENCES `registrations` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-CREATE TABLE `requestedNames` (
+CREATE TABLE IF NOT EXISTS `requestedNames` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`orderID` bigint(20) NOT NULL,
`reversedName` varchar(253) CHARACTER SET ascii NOT NULL,
@@ -201,7 +202,9 @@ CREATE TABLE `requestedNames` (
CONSTRAINT `orderID_orders` FOREIGN KEY (`orderID`) REFERENCES `orders` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-CREATE TABLE `serials` (
+DROP TABLE IF EXISTS `sctReceipts`;
+
+CREATE TABLE IF NOT EXISTS `serials` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`registrationID` bigint(20) NOT NULL,
`serial` varchar(255) NOT NULL,
@@ -223,15 +226,71 @@ DROP TABLE `precertificates`
DROP TABLE `requestedNames`
DROP TABLE `serials`
+CREATE TABLE `authz` (
+ `id` varchar(255) NOT NULL,
+ `identifier` varchar(255) NOT NULL,
+ `registrationID` bigint(20) NOT NULL,
+ `status` varchar(255) NOT NULL,
+ `expires` datetime DEFAULT NULL,
+ `combinations` varchar(255) NOT NULL,
+ PRIMARY KEY (`id`),
+ KEY `registrationID_identifier_status_expires_authz_idx` (`registrationID`,`identifier`,`status`,`expires`),
+ CONSTRAINT `regId_authz` FOREIGN KEY (`registrationID`) REFERENCES `registrations` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
DROP TABLE `authz2`
DROP TABLE `blockedKeys`
DROP TABLE `certificateStatus`
DROP TABLE `certificatesPerName`
-DROP TABLE `crls`
+
+CREATE TABLE `crls` (
+ `serial` varchar(255) NOT NULL,
+ `createdAt` datetime NOT NULL,
+ `crl` varchar(255) NOT NULL,
+ PRIMARY KEY (`serial`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
DROP TABLE `fqdnSets`
DROP TABLE `issuedNames`
DROP TABLE `keyHashToSerial`
DROP TABLE `newOrdersRL`
+
+CREATE TABLE `orderToAuthz` (
+ `orderID` bigint(20) NOT NULL,
+ `authzID` varchar(255) NOT NULL,
+ PRIMARY KEY (`orderID`,`authzID`),
+ KEY `authzID` (`authzID`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
DROP TABLE `orderToAuthz2`
DROP TABLE `orders`
-DROP TABLE `registrations`
+
+CREATE TABLE `pendingAuthorizations` (
+ `id` varchar(255) NOT NULL,
+ `identifier` varchar(255) NOT NULL,
+ `registrationID` bigint(20) NOT NULL,
+ `status` varchar(255) NOT NULL,
+ `expires` datetime DEFAULT NULL,
+ `combinations` varchar(255) NOT NULL,
+ `LockCol` bigint(20) NOT NULL,
+ PRIMARY KEY (`id`),
+ KEY `identifier_registrationID_status_expires_idx` (`identifier`,`registrationID`,`status`,`expires`),
+ KEY `registrationID_status_expires_idx` (`registrationID`,`status`,`expires`),
+ CONSTRAINT `regId_pending_authz` FOREIGN KEY (`registrationID`) REFERENCES `registrations` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+-- DROP TABLE `registrations`
+
+CREATE TABLE `sctReceipts` (
+ `id` bigint(20) NOT NULL AUTO_INCREMENT,
+ `sctVersion` tinyint(1) NOT NULL,
+ `logID` varchar(255) NOT NULL,
+ `timestamp` bigint(20) NOT NULL,
+ `extensions` blob DEFAULT NULL,
+ `signature` blob DEFAULT NULL,
+ `certificateSerial` varchar(255) NOT NULL,
+ `LockCol` bigint(20) DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `certificateSerial_logID` (`certificateSerial`,`logID`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+