From 092e3dca475a21c03dcaee80b13423b528d8a62f Mon Sep 17 00:00:00 2001 From: gbrodman Date: Tue, 9 Jul 2024 14:39:48 -0400 Subject: [PATCH] Add a renewal cost for ATs when renewal is SPECIFIED (#2484) Note: this is not used yet --- .../model/domain/token/AllocationToken.java | 63 +- .../GenerateAllocationTokensCommand.java | 17 +- .../tools/UpdateAllocationTokensCommand.java | 28 +- .../batch/CheckBulkComplianceActionTest.java | 16 +- .../flows/domain/DomainCreateFlowTest.java | 7 + .../flows/domain/DomainInfoFlowTest.java | 9 +- .../flows/domain/DomainRenewFlowTest.java | 8 + .../domain/DomainTransferApproveFlowTest.java | 4 + .../domain/DomainTransferRequestFlowTest.java | 6 + .../registry/model/domain/DomainSqlTest.java | 4 + .../registry/model/domain/DomainTest.java | 8 + .../domain/token/AllocationTokenTest.java | 112 +- .../domain/token/BulkPricingPackageTest.java | 5 +- .../CreateBulkPricingPackageCommandTest.java | 19 +- .../GenerateAllocationTokensCommandTest.java | 52 +- .../GetBulkPricingPackageCommandTest.java | 10 +- .../UpdateAllocationTokensCommandTest.java | 47 +- .../UpdateBulkPricingPackageCommandTest.java | 7 +- .../sql/er_diagram/brief_er_diagram.html | 4330 ++++++++--------- .../sql/er_diagram/full_er_diagram.html | 2446 +++++----- .../sql/schema/db-schema.sql.generated | 2 + 21 files changed, 3733 insertions(+), 3467 deletions(-) diff --git a/core/src/main/java/google/registry/model/domain/token/AllocationToken.java b/core/src/main/java/google/registry/model/domain/token/AllocationToken.java index b3aae9eb0..97aacbacc 100644 --- a/core/src/main/java/google/registry/model/domain/token/AllocationToken.java +++ b/core/src/main/java/google/registry/model/domain/token/AllocationToken.java @@ -50,6 +50,7 @@ import google.registry.model.domain.fee.FeeQueryCommandExtensionItem.CommandName import google.registry.model.reporting.HistoryEntry.HistoryEntryId; import google.registry.persistence.VKey; import google.registry.persistence.WithVKey; +import google.registry.persistence.converter.JodaMoneyType; import java.util.Map; import java.util.Optional; import java.util.Set; @@ -63,6 +64,9 @@ import javax.persistence.Enumerated; import javax.persistence.Id; import javax.persistence.Index; import javax.persistence.Table; +import org.hibernate.annotations.Columns; +import org.hibernate.annotations.Type; +import org.joda.money.Money; import org.joda.time.DateTime; /** An entity representing an allocation token. */ @@ -236,6 +240,12 @@ public class AllocationToken extends UpdateAutoTimestampEntity implements Builda @Column(name = "renewalPriceBehavior", nullable = false) RenewalPriceBehavior renewalPriceBehavior = RenewalPriceBehavior.DEFAULT; + /** The price used for renewals iff the renewalPriceBehavior is SPECIFIED. */ + @Nullable + @Type(type = JodaMoneyType.TYPE_NAME) + @Columns(columns = {@Column(name = "renewalPriceAmount"), @Column(name = "renewalPriceCurrency")}) + Money renewalPrice; + @Enumerated(EnumType.STRING) @Column(nullable = false) RegistrationBehavior registrationBehavior = RegistrationBehavior.DEFAULT; @@ -310,6 +320,10 @@ public class AllocationToken extends UpdateAutoTimestampEntity implements Builda return renewalPriceBehavior; } + public Optional getRenewalPrice() { + return Optional.ofNullable(renewalPrice); + } + public RegistrationBehavior getRegistrationBehavior() { return registrationBehavior; } @@ -377,29 +391,12 @@ public class AllocationToken extends UpdateAutoTimestampEntity implements Builda public AllocationToken build() { checkArgumentNotNull(getInstance().tokenType, "Token type must be specified"); checkArgument(!Strings.isNullOrEmpty(getInstance().token), "Token must not be null or empty"); - checkArgument( - !getInstance().tokenType.equals(TokenType.BULK_PRICING) - || getInstance().renewalPriceBehavior.equals(RenewalPriceBehavior.SPECIFIED), - "Bulk tokens must have renewalPriceBehavior set to SPECIFIED"); - checkArgument( - !getInstance().tokenType.equals(TokenType.BULK_PRICING) - || ImmutableSet.of(CommandName.CREATE).equals(getInstance().allowedEppActions), - "Bulk tokens may only be valid for CREATE actions"); - checkArgument( - !getInstance().tokenType.equals(TokenType.BULK_PRICING) - || !getInstance().discountPremiums, - "Bulk tokens cannot discount premium names"); checkArgument( getInstance().domainName == null || getInstance().tokenType.isOneTimeUse(), "Domain name can only be specified for SINGLE_USE or REGISTER_BSA tokens"); checkArgument( getInstance().redemptionHistoryId == null || getInstance().tokenType.isOneTimeUse(), "Redemption history entry can only be specified for SINGLE_USE or REGISTER_BSA tokens"); - checkArgument( - getInstance().tokenType != TokenType.BULK_PRICING - || (getInstance().allowedClientIds != null - && getInstance().allowedClientIds.size() == 1), - "BULK_PRICING tokens must have exactly one allowed client registrar"); checkArgument( getInstance().discountFraction > 0 || !getInstance().discountPremiums, "Discount premiums can only be specified along with a discount fraction"); @@ -425,6 +422,33 @@ public class AllocationToken extends UpdateAutoTimestampEntity implements Builda || getInstance().allowedEppActions.contains(CommandName.CREATE), "NONPREMIUM_CREATE tokens must allow for CREATE actions"); } + + checkArgument( + getInstance().renewalPriceBehavior.equals(RenewalPriceBehavior.SPECIFIED) + == (getInstance().renewalPrice != null), + "renewalPrice must be specified iff renewalPriceBehavior is SPECIFIED"); + + if (getInstance().tokenType.equals(TokenType.BULK_PRICING)) { + checkArgument( + getInstance().discountFraction == 1.0, + "BULK_PRICING tokens must have a discountFraction of 1.0"); + checkArgument( + !getInstance().shouldDiscountPremiums(), + "BULK_PRICING tokens cannot discount premium names"); + checkArgument( + getInstance().renewalPriceBehavior.equals(RenewalPriceBehavior.SPECIFIED), + "BULK_PRICING tokens must have renewalPriceBehavior set to SPECIFIED"); + checkArgument( + getInstance().renewalPrice.getAmount().intValue() == 0, + "BULK_PRICING tokens must have a renewal price of 0"); + checkArgument( + ImmutableSet.of(CommandName.CREATE).equals(getInstance().allowedEppActions), + "BULK_PRICING tokens may only be valid for CREATE actions"); + checkArgument( + getInstance().allowedClientIds != null && getInstance().allowedClientIds.size() == 1, + "BULK_PRICING tokens must have exactly one allowed client registrar"); + } + if (getInstance().domainName != null) { try { DomainFlowUtils.validateDomainName(getInstance().domainName); @@ -521,6 +545,11 @@ public class AllocationToken extends UpdateAutoTimestampEntity implements Builda return this; } + public Builder setRenewalPrice(Money renewalPrice) { + getInstance().renewalPrice = renewalPrice; + return this; + } + public Builder setRegistrationBehavior(RegistrationBehavior registrationBehavior) { getInstance().registrationBehavior = registrationBehavior; return this; diff --git a/core/src/main/java/google/registry/tools/GenerateAllocationTokensCommand.java b/core/src/main/java/google/registry/tools/GenerateAllocationTokensCommand.java index 15771c9ee..d77d69549 100644 --- a/core/src/main/java/google/registry/tools/GenerateAllocationTokensCommand.java +++ b/core/src/main/java/google/registry/tools/GenerateAllocationTokensCommand.java @@ -30,6 +30,7 @@ import static java.nio.charset.StandardCharsets.UTF_8; import com.beust.jcommander.Parameter; import com.beust.jcommander.Parameters; +import com.beust.jcommander.internal.Nullable; import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Joiner; import com.google.common.base.Splitter; @@ -62,6 +63,7 @@ import java.util.stream.Collectors; import java.util.stream.Stream; import javax.inject.Inject; import javax.inject.Named; +import org.joda.money.Money; import org.joda.time.DateTime; /** Command to generate and persist {@link AllocationToken}s. */ @@ -158,10 +160,16 @@ class GenerateAllocationTokensCommand implements Command { "The type of renewal price behavior, either DEFAULT (default), NONPREMIUM, or SPECIFIED." + " This indicates how a domain should be charged for renewal. By default, a domain" + " will be renewed at the renewal price from the pricing engine. If the renewal" - + " price behavior is set to SPECIFIED, it means that the renewal cost will be the" - + " same as the domain's calculated create price.") + + " price behavior is set to SPECIFIED, it means that the renewal cost will be equal" + + " to the provided renewal price.") private RenewalPriceBehavior renewalPriceBehavior = DEFAULT; + @Parameter( + names = {"--renewal_price"}, + description = "The renewal price amount iff the renewal price behavior is SPECIFIED.") + @Nullable + private Money renewalPrice; + @Parameter( names = {"--registration_behavior"}, description = @@ -228,6 +236,7 @@ class GenerateAllocationTokensCommand implements Command { Optional.ofNullable(discountYears).ifPresent(token::setDiscountYears); Optional.ofNullable(tokenStatusTransitions) .ifPresent(token::setTokenStatusTransitions); + Optional.ofNullable(renewalPrice).ifPresent(token::setRenewalPrice); Optional.ofNullable(domainNames) .ifPresent(d -> token.setDomainName(d.removeFirst())); return token.build(); @@ -295,6 +304,10 @@ class GenerateAllocationTokensCommand implements Command { + " map"); } + checkArgument( + renewalPriceBehavior.equals(RenewalPriceBehavior.SPECIFIED) == (renewalPrice != null), + "renewal_price must be specified iff renewal_price_behavior is SPECIFIED"); + if (tokenStrings != null) { verifyTokenStringsDoNotExist(); } diff --git a/core/src/main/java/google/registry/tools/UpdateAllocationTokensCommand.java b/core/src/main/java/google/registry/tools/UpdateAllocationTokensCommand.java index a89d87a0e..7958327f5 100644 --- a/core/src/main/java/google/registry/tools/UpdateAllocationTokensCommand.java +++ b/core/src/main/java/google/registry/tools/UpdateAllocationTokensCommand.java @@ -40,6 +40,7 @@ import java.util.List; import java.util.Map; import java.util.Optional; import java.util.function.Function; +import org.joda.money.Money; import org.joda.time.DateTime; /** Command to update existing {@link AllocationToken}s. */ @@ -110,11 +111,17 @@ final class UpdateAllocationTokensCommand extends UpdateOrDeleteAllocationTokens "The type of renewal price behavior, either DEFAULT (default), NONPREMIUM, or SPECIFIED." + " This indicates how a domain should be charged for renewal. By default, a domain" + " will be renewed at the renewal price from the pricing engine. If the renewal" - + " price behavior is set to SPECIFIED, it means that the renewal cost will be the" - + " same as the domain's calculated create price.") + + " price behavior is set to SPECIFIED, it means that the renewal cost will be equal" + + " to the provided renewal price.") @Nullable private RenewalPriceBehavior renewalPriceBehavior; + @Parameter( + names = {"--renewal_price"}, + description = "The renewal price amount iff the renewal price behavior is SPECIFIED.") + @Nullable + private Money renewalPrice; + @Parameter( names = {"--registration_behavior"}, description = @@ -189,17 +196,22 @@ final class UpdateAllocationTokensCommand extends UpdateOrDeleteAllocationTokens .ifPresent(tlds -> builder.setAllowedTlds(ImmutableSet.copyOf(tlds))); Optional.ofNullable(allowedEppActions) .ifPresent( - eppActions -> { - builder.setAllowedEppActions( - eppActions.stream() - .map(CommandName::parseKnownCommand) - .collect(toImmutableSet())); - }); + eppActions -> + builder.setAllowedEppActions( + eppActions.stream() + .map(CommandName::parseKnownCommand) + .collect(toImmutableSet()))); Optional.ofNullable(discountFraction).ifPresent(builder::setDiscountFraction); Optional.ofNullable(discountPremiums).ifPresent(builder::setDiscountPremiums); Optional.ofNullable(discountYears).ifPresent(builder::setDiscountYears); Optional.ofNullable(tokenStatusTransitions).ifPresent(builder::setTokenStatusTransitions); + + if (renewalPriceBehavior != null + && renewalPriceBehavior != original.getRenewalPriceBehavior()) { + builder.setRenewalPrice(null); + } Optional.ofNullable(renewalPriceBehavior).ifPresent(builder::setRenewalPriceBehavior); + Optional.ofNullable(renewalPrice).ifPresent(builder::setRenewalPrice); Optional.ofNullable(registrationBehavior).ifPresent(builder::setRegistrationBehavior); return builder.build(); } diff --git a/core/src/test/java/google/registry/batch/CheckBulkComplianceActionTest.java b/core/src/test/java/google/registry/batch/CheckBulkComplianceActionTest.java index b0a7cc5a5..491b4ff05 100644 --- a/core/src/test/java/google/registry/batch/CheckBulkComplianceActionTest.java +++ b/core/src/test/java/google/registry/batch/CheckBulkComplianceActionTest.java @@ -20,6 +20,7 @@ import static google.registry.testing.DatabaseHelper.persistActiveContact; import static google.registry.testing.DatabaseHelper.persistEppResource; import static google.registry.testing.DatabaseHelper.persistResource; import static google.registry.testing.LogsSubject.assertAboutLogs; +import static org.joda.money.CurrencyUnit.USD; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.times; @@ -111,8 +112,9 @@ public class CheckBulkComplianceActionTest { .setAllowedTlds(ImmutableSet.of("foo")) .setAllowedRegistrarIds(ImmutableSet.of("TheRegistrar")) .setRenewalPriceBehavior(RenewalPriceBehavior.SPECIFIED) + .setRenewalPrice(Money.of(CurrencyUnit.USD, 0)) .setAllowedEppActions(ImmutableSet.of(CommandName.CREATE)) - .setDiscountFraction(1) + .setDiscountFraction(1.0) .build()); bulkPricingPackage = new BulkPricingPackage.Builder() @@ -206,8 +208,9 @@ public class CheckBulkComplianceActionTest { .setAllowedTlds(ImmutableSet.of("foo")) .setAllowedRegistrarIds(ImmutableSet.of("TheRegistrar")) .setRenewalPriceBehavior(RenewalPriceBehavior.SPECIFIED) + .setRenewalPrice(Money.of(USD, 0)) .setAllowedEppActions(ImmutableSet.of(CommandName.CREATE)) - .setDiscountFraction(1) + .setDiscountFraction(1.0) .build()); BulkPricingPackage bulkPricingPackage2 = new BulkPricingPackage.Builder() @@ -263,8 +266,9 @@ public class CheckBulkComplianceActionTest { .setAllowedTlds(ImmutableSet.of("foo")) .setAllowedRegistrarIds(ImmutableSet.of("TheRegistrar")) .setRenewalPriceBehavior(RenewalPriceBehavior.SPECIFIED) + .setRenewalPrice(Money.of(USD, 0)) .setAllowedEppActions(ImmutableSet.of(CommandName.CREATE)) - .setDiscountFraction(1) + .setDiscountFraction(1.0) .build()); BulkPricingPackage packagePromotion2 = new BulkPricingPackage.Builder() @@ -338,8 +342,9 @@ public class CheckBulkComplianceActionTest { .setAllowedTlds(ImmutableSet.of("foo")) .setAllowedRegistrarIds(ImmutableSet.of("TheRegistrar")) .setRenewalPriceBehavior(RenewalPriceBehavior.SPECIFIED) + .setRenewalPrice(Money.of(USD, 0)) .setAllowedEppActions(ImmutableSet.of(CommandName.CREATE)) - .setDiscountFraction(1) + .setDiscountFraction(1.0) .build()); BulkPricingPackage bulkPricingPackage2 = new BulkPricingPackage.Builder() @@ -404,8 +409,9 @@ public class CheckBulkComplianceActionTest { .setAllowedTlds(ImmutableSet.of("foo")) .setAllowedRegistrarIds(ImmutableSet.of("TheRegistrar")) .setRenewalPriceBehavior(RenewalPriceBehavior.SPECIFIED) + .setRenewalPrice(Money.of(USD, 0)) .setAllowedEppActions(ImmutableSet.of(CommandName.CREATE)) - .setDiscountFraction(1) + .setDiscountFraction(1.0) .build()); BulkPricingPackage bulkPricingPackage2 = new BulkPricingPackage.Builder() diff --git a/core/src/test/java/google/registry/flows/domain/DomainCreateFlowTest.java b/core/src/test/java/google/registry/flows/domain/DomainCreateFlowTest.java index d16b71328..823193105 100644 --- a/core/src/test/java/google/registry/flows/domain/DomainCreateFlowTest.java +++ b/core/src/test/java/google/registry/flows/domain/DomainCreateFlowTest.java @@ -1371,6 +1371,7 @@ class DomainCreateFlowTest extends ResourceFlowTestCase { .setAllowedTlds(ImmutableSet.of("foo")) .setAllowedRegistrarIds(ImmutableSet.of("NewRegistrar")) .setRenewalPriceBehavior(RenewalPriceBehavior.SPECIFIED) + .setRenewalPrice(Money.of(USD, 0)) .setAllowedEppActions(ImmutableSet.of(CommandName.CREATE)) - .setDiscountFraction(1) + .setDiscountFraction(1.0) .build()); domain = domain.asBuilder().setCurrentBulkToken(token.createVKey()).build(); persistResource(domain); @@ -1139,8 +1140,9 @@ class DomainInfoFlowTest extends ResourceFlowTestCase { .setAllowedTlds(ImmutableSet.of("foo")) .setAllowedRegistrarIds(ImmutableSet.of("NewRegistrar")) .setRenewalPriceBehavior(RenewalPriceBehavior.SPECIFIED) + .setRenewalPrice(Money.of(USD, 0)) .setAllowedEppActions(ImmutableSet.of(CommandName.CREATE)) - .setDiscountFraction(1) + .setDiscountFraction(1.0) .build()); domain = domain.asBuilder().setCurrentBulkToken(token.createVKey()).build(); persistResource(domain); @@ -1172,8 +1174,9 @@ class DomainInfoFlowTest extends ResourceFlowTestCase { .setAllowedTlds(ImmutableSet.of("foo")) .setAllowedRegistrarIds(ImmutableSet.of("NewRegistrar")) .setRenewalPriceBehavior(RenewalPriceBehavior.SPECIFIED) + .setRenewalPrice(Money.of(USD, 0)) .setAllowedEppActions(ImmutableSet.of(CommandName.CREATE)) - .setDiscountFraction(1) + .setDiscountFraction(1.0) .build()); domain = domain.asBuilder().setCurrentBulkToken(token.createVKey()).build(); persistResource(domain); diff --git a/core/src/test/java/google/registry/flows/domain/DomainRenewFlowTest.java b/core/src/test/java/google/registry/flows/domain/DomainRenewFlowTest.java index 0e51bef0f..395d21956 100644 --- a/core/src/test/java/google/registry/flows/domain/DomainRenewFlowTest.java +++ b/core/src/test/java/google/registry/flows/domain/DomainRenewFlowTest.java @@ -1257,9 +1257,11 @@ class DomainRenewFlowTest extends ResourceFlowTestCase new AllocationToken.Builder() .setToken("abc123") .setTokenType(BULK_PRICING) + .setDiscountFraction(1.0) .setAllowedRegistrarIds(ImmutableSet.of("TheRegistrar")) .setAllowedTlds(ImmutableSet.of("tld")) .setRenewalPriceBehavior(SPECIFIED) + .setRenewalPrice(Money.of(USD, 0)) .setAllowedEppActions(ImmutableSet.of(CommandName.CREATE)) .build()); persistDomain(); @@ -1290,9 +1292,11 @@ class DomainRenewFlowTest extends ResourceFlowTestCase new AllocationToken.Builder() .setToken("abc123") .setTokenType(BULK_PRICING) + .setDiscountFraction(1.0) .setAllowedRegistrarIds(ImmutableSet.of("TheRegistrar")) .setAllowedTlds(ImmutableSet.of("tld")) .setRenewalPriceBehavior(SPECIFIED) + .setRenewalPrice(Money.of(USD, 0)) .setAllowedEppActions(ImmutableSet.of(CommandName.CREATE)) .build()); persistDomain(); @@ -1327,9 +1331,11 @@ class DomainRenewFlowTest extends ResourceFlowTestCase new AllocationToken.Builder() .setToken("abc123") .setTokenType(BULK_PRICING) + .setDiscountFraction(1.0) .setAllowedRegistrarIds(ImmutableSet.of("TheRegistrar")) .setAllowedTlds(ImmutableSet.of("tld")) .setRenewalPriceBehavior(SPECIFIED) + .setRenewalPrice(Money.of(USD, 0)) .setAllowedEppActions(ImmutableSet.of(CommandName.CREATE)) .build()); persistDomain(SPECIFIED, Money.of(USD, 2)); @@ -1357,9 +1363,11 @@ class DomainRenewFlowTest extends ResourceFlowTestCase new AllocationToken.Builder() .setToken("abc123") .setTokenType(BULK_PRICING) + .setDiscountFraction(1.0) .setAllowedRegistrarIds(ImmutableSet.of("TheRegistrar")) .setAllowedTlds(ImmutableSet.of("tld")) .setRenewalPriceBehavior(SPECIFIED) + .setRenewalPrice(Money.of(USD, 0)) .setAllowedEppActions(ImmutableSet.of(CommandName.CREATE)) .build()); persistDomain(SPECIFIED, Money.of(USD, 2)); diff --git a/core/src/test/java/google/registry/flows/domain/DomainTransferApproveFlowTest.java b/core/src/test/java/google/registry/flows/domain/DomainTransferApproveFlowTest.java index f8a5cbc66..86d3b9d5d 100644 --- a/core/src/test/java/google/registry/flows/domain/DomainTransferApproveFlowTest.java +++ b/core/src/test/java/google/registry/flows/domain/DomainTransferApproveFlowTest.java @@ -388,7 +388,9 @@ class DomainTransferApproveFlowTest new AllocationToken.Builder() .setToken("abc123") .setTokenType(BULK_PRICING) + .setDiscountFraction(1.0) .setRenewalPriceBehavior(RenewalPriceBehavior.SPECIFIED) + .setRenewalPrice(Money.of(USD, 0)) .setAllowedRegistrarIds(ImmutableSet.of("TheRegistrar")) .setAllowedEppActions(ImmutableSet.of(CommandName.CREATE)) .build()); @@ -417,7 +419,9 @@ class DomainTransferApproveFlowTest new AllocationToken.Builder() .setToken("abc123") .setTokenType(BULK_PRICING) + .setDiscountFraction(1.0) .setRenewalPriceBehavior(RenewalPriceBehavior.SPECIFIED) + .setRenewalPrice(Money.of(USD, 0)) .setAllowedEppActions(ImmutableSet.of(CommandName.CREATE)) .setAllowedRegistrarIds(ImmutableSet.of("TheRegistrar")) .build()); diff --git a/core/src/test/java/google/registry/flows/domain/DomainTransferRequestFlowTest.java b/core/src/test/java/google/registry/flows/domain/DomainTransferRequestFlowTest.java index 8b1d1ea1a..72859ddd1 100644 --- a/core/src/test/java/google/registry/flows/domain/DomainTransferRequestFlowTest.java +++ b/core/src/test/java/google/registry/flows/domain/DomainTransferRequestFlowTest.java @@ -1339,7 +1339,9 @@ class DomainTransferRequestFlowTest new AllocationToken.Builder() .setToken("abc123") .setTokenType(BULK_PRICING) + .setDiscountFraction(1.0) .setRenewalPriceBehavior(RenewalPriceBehavior.SPECIFIED) + .setRenewalPrice(Money.of(USD, 0)) .setAllowedEppActions(ImmutableSet.of(CommandName.CREATE)) .setAllowedRegistrarIds(ImmutableSet.of("TheRegistrar")) .build()); @@ -1398,7 +1400,9 @@ class DomainTransferRequestFlowTest new AllocationToken.Builder() .setToken("abc123") .setTokenType(BULK_PRICING) + .setDiscountFraction(1.0) .setRenewalPriceBehavior(RenewalPriceBehavior.SPECIFIED) + .setRenewalPrice(Money.of(USD, 0)) .setAllowedEppActions(ImmutableSet.of(CommandName.CREATE)) .setAllowedRegistrarIds(ImmutableSet.of("TheRegistrar")) .build()); @@ -1456,7 +1460,9 @@ class DomainTransferRequestFlowTest new AllocationToken.Builder() .setToken("abc123") .setTokenType(BULK_PRICING) + .setDiscountFraction(1.0) .setRenewalPriceBehavior(RenewalPriceBehavior.SPECIFIED) + .setRenewalPrice(Money.of(USD, 0)) .setAllowedEppActions(ImmutableSet.of(CommandName.CREATE)) .setAllowedRegistrarIds(ImmutableSet.of("TheRegistrar")) .build()); diff --git a/core/src/test/java/google/registry/model/domain/DomainSqlTest.java b/core/src/test/java/google/registry/model/domain/DomainSqlTest.java index fef1474ab..29d78920a 100644 --- a/core/src/test/java/google/registry/model/domain/DomainSqlTest.java +++ b/core/src/test/java/google/registry/model/domain/DomainSqlTest.java @@ -55,6 +55,8 @@ import google.registry.testing.FakeClock; import google.registry.util.SerializeUtils; import java.util.Arrays; import java.util.Optional; +import org.joda.money.CurrencyUnit; +import org.joda.money.Money; import org.joda.time.DateTime; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -134,10 +136,12 @@ public class DomainSqlTest { new AllocationToken.Builder() .setToken("abc123Unlimited") .setTokenType(BULK_PRICING) + .setDiscountFraction(1.0) .setCreationTimeForTest(DateTime.parse("2010-11-12T05:00:00Z")) .setAllowedTlds(ImmutableSet.of("dev", "app")) .setAllowedRegistrarIds(ImmutableSet.of("TheRegistrar")) .setRenewalPriceBehavior(RenewalPriceBehavior.SPECIFIED) + .setRenewalPrice(Money.of(CurrencyUnit.USD, 0)) .setAllowedEppActions(ImmutableSet.of(CommandName.CREATE)) .setTokenStatusTransitions( ImmutableSortedMap.naturalOrder() diff --git a/core/src/test/java/google/registry/model/domain/DomainTest.java b/core/src/test/java/google/registry/model/domain/DomainTest.java index a6a22f0d7..74bcf2ffe 100644 --- a/core/src/test/java/google/registry/model/domain/DomainTest.java +++ b/core/src/test/java/google/registry/model/domain/DomainTest.java @@ -842,7 +842,9 @@ public class DomainTest { new AllocationToken.Builder() .setToken("abc123") .setTokenType(BULK_PRICING) + .setDiscountFraction(1.0) .setRenewalPriceBehavior(SPECIFIED) + .setRenewalPrice(Money.of(USD, 0)) .setAllowedEppActions(ImmutableSet.of(CommandName.CREATE)) .setAllowedRegistrarIds(ImmutableSet.of("TheRegistrar")) .build()); @@ -904,7 +906,9 @@ public class DomainTest { new AllocationToken.Builder() .setToken("abc123") .setTokenType(BULK_PRICING) + .setDiscountFraction(1.0) .setRenewalPriceBehavior(SPECIFIED) + .setRenewalPrice(Money.of(USD, 0)) .setAllowedEppActions(ImmutableSet.of(CommandName.CREATE)) .setAllowedRegistrarIds(ImmutableSet.of("TheRegistrar")) .build()); @@ -1074,7 +1078,9 @@ public class DomainTest { new AllocationToken.Builder() .setToken("abc123") .setTokenType(BULK_PRICING) + .setDiscountFraction(1.0) .setRenewalPriceBehavior(SPECIFIED) + .setRenewalPrice(Money.of(USD, 0)) .setAllowedEppActions(ImmutableSet.of(CommandName.CREATE)) .setAllowedRegistrarIds(ImmutableSet.of("TheRegistrar")) .build(); @@ -1092,7 +1098,9 @@ public class DomainTest { new AllocationToken.Builder() .setToken("abc123") .setTokenType(BULK_PRICING) + .setDiscountFraction(1.0) .setRenewalPriceBehavior(SPECIFIED) + .setRenewalPrice(Money.of(USD, 0)) .setAllowedEppActions(ImmutableSet.of(CommandName.CREATE)) .setAllowedRegistrarIds(ImmutableSet.of("TheRegistrar")) .build()); diff --git a/core/src/test/java/google/registry/model/domain/token/AllocationTokenTest.java b/core/src/test/java/google/registry/model/domain/token/AllocationTokenTest.java index edcd2cba6..aaa3c9160 100644 --- a/core/src/test/java/google/registry/model/domain/token/AllocationTokenTest.java +++ b/core/src/test/java/google/registry/model/domain/token/AllocationTokenTest.java @@ -43,6 +43,8 @@ import google.registry.model.domain.token.AllocationToken.TokenStatus; import google.registry.model.domain.token.AllocationToken.TokenType; import google.registry.model.reporting.HistoryEntry.HistoryEntryId; import google.registry.util.SerializeUtils; +import org.joda.money.CurrencyUnit; +import org.joda.money.Money; import org.joda.time.DateTime; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -158,15 +160,16 @@ public class AllocationTokenTest extends EntityTestCase { @Test void testSetRenewalBehavior_assertsRenewalBehaviorIsNotDefault() { - assertThat( - persistResource( - new AllocationToken.Builder() - .setToken("abc123") - .setTokenType(SINGLE_USE) - .setRenewalPriceBehavior(RenewalPriceBehavior.SPECIFIED) - .build()) - .getRenewalPriceBehavior()) - .isEqualTo(RenewalPriceBehavior.SPECIFIED); + AllocationToken token = + persistResource( + new AllocationToken.Builder() + .setToken("abc123") + .setTokenType(SINGLE_USE) + .setRenewalPriceBehavior(RenewalPriceBehavior.SPECIFIED) + .setRenewalPrice(Money.of(CurrencyUnit.USD, 5)) + .build()); + assertThat(token.getRenewalPriceBehavior()).isEqualTo(RenewalPriceBehavior.SPECIFIED); + assertThat(token.getRenewalPrice()).hasValue(Money.of(CurrencyUnit.USD, 5)); } @Test @@ -181,7 +184,11 @@ public class AllocationTokenTest extends EntityTestCase { AllocationToken loadedToken = loadByEntity(token); assertThat(token).isEqualTo(loadedToken); persistResource( - loadedToken.asBuilder().setRenewalPriceBehavior(RenewalPriceBehavior.SPECIFIED).build()); + loadedToken + .asBuilder() + .setRenewalPriceBehavior(RenewalPriceBehavior.SPECIFIED) + .setRenewalPrice(Money.of(CurrencyUnit.USD, 5)) + .build()); assertThat(loadByEntity(token).getRenewalPriceBehavior()) .isEqualTo(RenewalPriceBehavior.SPECIFIED); } @@ -218,17 +225,50 @@ public class AllocationTokenTest extends EntityTestCase { } @Test - void testFail_bulkTokenNotSpecifiedRenewalBehavior() { + void testFail_bulkTokenInvalidRenewalBehavior() { + assertThat( + assertThrows( + IllegalArgumentException.class, + () -> + new AllocationToken.Builder() + .setToken("abc123") + .setTokenType(TokenType.BULK_PRICING) + .setDiscountFraction(1.0) + .setAllowedEppActions(ImmutableSet.of(CommandName.CREATE)) + .setRenewalPriceBehavior(RenewalPriceBehavior.DEFAULT) + .build())) + .hasMessageThat() + .isEqualTo("BULK_PRICING tokens must have renewalPriceBehavior set to SPECIFIED"); + + assertThat( + assertThrows( + IllegalArgumentException.class, + () -> + new AllocationToken.Builder() + .setToken("abc123") + .setTokenType(TokenType.BULK_PRICING) + .setDiscountFraction(1.0) + .setAllowedEppActions(ImmutableSet.of(CommandName.CREATE)) + .setRenewalPriceBehavior(RenewalPriceBehavior.SPECIFIED) + .setRenewalPrice(Money.of(CurrencyUnit.USD, 5)) + .build())) + .hasMessageThat() + .isEqualTo("BULK_PRICING tokens must have a renewal price of 0"); + } + + @Test + void testFailure_bulkTokenDiscountFraction() { AllocationToken.Builder builder = new AllocationToken.Builder() .setToken("abc123") .setTokenType(TokenType.BULK_PRICING) .setAllowedEppActions(ImmutableSet.of(CommandName.CREATE)) - .setRenewalPriceBehavior(RenewalPriceBehavior.DEFAULT); + .setRenewalPriceBehavior(RenewalPriceBehavior.SPECIFIED) + .setRenewalPrice(Money.of(CurrencyUnit.USD, 0)); IllegalArgumentException thrown = assertThrows(IllegalArgumentException.class, builder::build); assertThat(thrown) .hasMessageThat() - .isEqualTo("Bulk tokens must have renewalPriceBehavior set to SPECIFIED"); + .isEqualTo("BULK_PRICING tokens must have a discountFraction of 1.0"); } @Test @@ -237,12 +277,14 @@ public class AllocationTokenTest extends EntityTestCase { new AllocationToken.Builder() .setToken("abc123") .setTokenType(TokenType.BULK_PRICING) + .setDiscountFraction(1.0) .setAllowedEppActions(ImmutableSet.of(CommandName.CREATE, CommandName.RESTORE)) - .setRenewalPriceBehavior(RenewalPriceBehavior.SPECIFIED); + .setRenewalPriceBehavior(RenewalPriceBehavior.SPECIFIED) + .setRenewalPrice(Money.of(CurrencyUnit.USD, 0)); IllegalArgumentException thrown = assertThrows(IllegalArgumentException.class, builder::build); assertThat(thrown) .hasMessageThat() - .isEqualTo("Bulk tokens may only be valid for CREATE actions"); + .isEqualTo("BULK_PRICING tokens may only be valid for CREATE actions"); } @Test @@ -263,11 +305,13 @@ public class AllocationTokenTest extends EntityTestCase { new AllocationToken.Builder() .setToken("abc123") .setTokenType(TokenType.BULK_PRICING) - .setRenewalPriceBehavior(RenewalPriceBehavior.SPECIFIED); + .setDiscountFraction(1.0) + .setRenewalPriceBehavior(RenewalPriceBehavior.SPECIFIED) + .setRenewalPrice(Money.of(CurrencyUnit.USD, 0)); IllegalArgumentException thrown = assertThrows(IllegalArgumentException.class, builder::build); assertThat(thrown) .hasMessageThat() - .isEqualTo("Bulk tokens may only be valid for CREATE actions"); + .isEqualTo("BULK_PRICING tokens may only be valid for CREATE actions"); } @Test @@ -276,11 +320,15 @@ public class AllocationTokenTest extends EntityTestCase { new AllocationToken.Builder() .setToken("abc123") .setTokenType(TokenType.BULK_PRICING) + .setDiscountFraction(1.0) .setAllowedEppActions(ImmutableSet.of(CommandName.CREATE)) .setRenewalPriceBehavior(RenewalPriceBehavior.SPECIFIED) + .setRenewalPrice(Money.of(CurrencyUnit.USD, 0)) .setDiscountPremiums(true); IllegalArgumentException thrown = assertThrows(IllegalArgumentException.class, builder::build); - assertThat(thrown).hasMessageThat().isEqualTo("Bulk tokens cannot discount premium names"); + assertThat(thrown) + .hasMessageThat() + .isEqualTo("BULK_PRICING tokens cannot discount premium names"); } @Test @@ -338,8 +386,10 @@ public class AllocationTokenTest extends EntityTestCase { new AllocationToken.Builder() .setToken("foobar") .setTokenType(BULK_PRICING) + .setDiscountFraction(1.0) .setAllowedEppActions(ImmutableSet.of(CommandName.CREATE)) .setRenewalPriceBehavior(RenewalPriceBehavior.SPECIFIED) + .setRenewalPrice(Money.of(CurrencyUnit.USD, 0)) .setAllowedRegistrarIds(ImmutableSet.of("foo", "bar")); IllegalArgumentException thrown = assertThrows(IllegalArgumentException.class, builder::build); assertThat(thrown) @@ -536,6 +586,32 @@ public class AllocationTokenTest extends EntityTestCase { .isEqualTo("Discount years can only be specified along with a discount fraction"); } + @Test + void testBuild_specifiedTokenInvalidBehavior() { + assertThat( + assertThrows( + IllegalArgumentException.class, + () -> + new AllocationToken.Builder() + .setToken("abc") + .setTokenType(SINGLE_USE) + .setRenewalPriceBehavior(RenewalPriceBehavior.SPECIFIED) + .build())) + .hasMessageThat() + .isEqualTo("renewalPrice must be specified iff renewalPriceBehavior is SPECIFIED"); + assertThat( + assertThrows( + IllegalArgumentException.class, + () -> + new AllocationToken.Builder() + .setToken("abc") + .setTokenType(SINGLE_USE) + .setRenewalPrice(Money.of(CurrencyUnit.USD, 10)) + .build())) + .hasMessageThat() + .isEqualTo("renewalPrice must be specified iff renewalPriceBehavior is SPECIFIED"); + } + @Test void testBuild_registrationBehaviors() { createTld("tld"); diff --git a/core/src/test/java/google/registry/model/domain/token/BulkPricingPackageTest.java b/core/src/test/java/google/registry/model/domain/token/BulkPricingPackageTest.java index 99fc4479f..8893831ff 100644 --- a/core/src/test/java/google/registry/model/domain/token/BulkPricingPackageTest.java +++ b/core/src/test/java/google/registry/model/domain/token/BulkPricingPackageTest.java @@ -55,8 +55,9 @@ public class BulkPricingPackageTest extends EntityTestCase { .setAllowedTlds(ImmutableSet.of("foo")) .setAllowedRegistrarIds(ImmutableSet.of("TheRegistrar")) .setRenewalPriceBehavior(RenewalPriceBehavior.SPECIFIED) + .setRenewalPrice(Money.of(CurrencyUnit.USD, 0)) .setAllowedEppActions(ImmutableSet.of(CommandName.CREATE)) - .setDiscountFraction(1) + .setDiscountFraction(1.0) .build()); BulkPricingPackage bulkPricingPackage = @@ -84,7 +85,7 @@ public class BulkPricingPackageTest extends EntityTestCase { .setCreationTimeForTest(DateTime.parse("2010-11-12T05:00:00Z")) .setAllowedTlds(ImmutableSet.of("foo")) .setAllowedRegistrarIds(ImmutableSet.of("TheRegistrar")) - .setDiscountFraction(1) + .setDiscountFraction(1.0) .build()); IllegalArgumentException thrown = diff --git a/core/src/test/java/google/registry/tools/CreateBulkPricingPackageCommandTest.java b/core/src/test/java/google/registry/tools/CreateBulkPricingPackageCommandTest.java index f2dd2a0d7..e8ff93f0e 100644 --- a/core/src/test/java/google/registry/tools/CreateBulkPricingPackageCommandTest.java +++ b/core/src/test/java/google/registry/tools/CreateBulkPricingPackageCommandTest.java @@ -18,6 +18,7 @@ import static com.google.common.truth.Truth.assertThat; import static google.registry.persistence.transaction.TransactionManagerFactory.tm; import static google.registry.testing.DatabaseHelper.persistResource; import static google.registry.util.DateTimeUtils.END_OF_TIME; +import static org.joda.money.CurrencyUnit.USD; import static org.junit.jupiter.api.Assertions.assertThrows; import com.google.common.collect.ImmutableSet; @@ -46,8 +47,9 @@ public class CreateBulkPricingPackageCommandTest .setAllowedTlds(ImmutableSet.of("foo")) .setAllowedRegistrarIds(ImmutableSet.of("TheRegistrar")) .setRenewalPriceBehavior(RenewalPriceBehavior.SPECIFIED) + .setRenewalPrice(Money.of(USD, 0)) .setAllowedEppActions(ImmutableSet.of(CommandName.CREATE)) - .setDiscountFraction(1) + .setDiscountFraction(1.0) .build()); runCommandForced( "--max_domains=100", @@ -78,7 +80,8 @@ public class CreateBulkPricingPackageCommandTest .setAllowedTlds(ImmutableSet.of("foo")) .setAllowedRegistrarIds(ImmutableSet.of("TheRegistrar")) .setRenewalPriceBehavior(RenewalPriceBehavior.SPECIFIED) - .setDiscountFraction(1) + .setRenewalPrice(Money.of(USD, 0)) + .setDiscountFraction(1.0) .build()); IllegalArgumentException thrown = assertThrows( @@ -122,8 +125,9 @@ public class CreateBulkPricingPackageCommandTest .setAllowedTlds(ImmutableSet.of("foo")) .setAllowedRegistrarIds(ImmutableSet.of("TheRegistrar")) .setRenewalPriceBehavior(RenewalPriceBehavior.SPECIFIED) + .setRenewalPrice(Money.of(USD, 0)) .setAllowedEppActions(ImmutableSet.of(CommandName.CREATE)) - .setDiscountFraction(1) + .setDiscountFraction(1.0) .build()); runCommandForced( "--max_domains=100", @@ -158,8 +162,9 @@ public class CreateBulkPricingPackageCommandTest .setAllowedTlds(ImmutableSet.of("foo")) .setAllowedRegistrarIds(ImmutableSet.of("TheRegistrar")) .setRenewalPriceBehavior(RenewalPriceBehavior.SPECIFIED) + .setRenewalPrice(Money.of(USD, 0)) .setAllowedEppActions(ImmutableSet.of(CommandName.CREATE)) - .setDiscountFraction(1) + .setDiscountFraction(1.0) .build()); runCommandForced("--price=USD 1000.00", "--next_billing_date=2012-03-17T00:00:00Z", "abc123"); Optional bulkPricingPackageOptional = @@ -184,8 +189,9 @@ public class CreateBulkPricingPackageCommandTest .setAllowedTlds(ImmutableSet.of("foo")) .setAllowedRegistrarIds(ImmutableSet.of("TheRegistrar")) .setRenewalPriceBehavior(RenewalPriceBehavior.SPECIFIED) + .setRenewalPrice(Money.of(USD, 0)) .setAllowedEppActions(ImmutableSet.of(CommandName.CREATE)) - .setDiscountFraction(1) + .setDiscountFraction(1.0) .build()); runCommandForced("--max_domains=100", "--max_creates=500", "--price=USD 1000.00", "abc123"); @@ -210,8 +216,9 @@ public class CreateBulkPricingPackageCommandTest .setAllowedTlds(ImmutableSet.of("foo")) .setAllowedRegistrarIds(ImmutableSet.of("TheRegistrar")) .setRenewalPriceBehavior(RenewalPriceBehavior.SPECIFIED) + .setRenewalPrice(Money.of(USD, 0)) .setAllowedEppActions(ImmutableSet.of(CommandName.CREATE)) - .setDiscountFraction(1) + .setDiscountFraction(1.0) .build()); IllegalArgumentException thrown = assertThrows( diff --git a/core/src/test/java/google/registry/tools/GenerateAllocationTokensCommandTest.java b/core/src/test/java/google/registry/tools/GenerateAllocationTokensCommandTest.java index a1a2540dc..9f967cf1e 100644 --- a/core/src/test/java/google/registry/tools/GenerateAllocationTokensCommandTest.java +++ b/core/src/test/java/google/registry/tools/GenerateAllocationTokensCommandTest.java @@ -45,6 +45,8 @@ import google.registry.util.StringGenerator.Alphabets; import java.io.File; import java.util.Collection; import javax.annotation.Nullable; +import org.joda.money.CurrencyUnit; +import org.joda.money.Money; import org.joda.time.DateTime; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -194,19 +196,47 @@ class GenerateAllocationTokensCommandTest extends CommandTestCase runCommand("--tokens", "foobar", "--renewal_price_behavior", "SPECIFIED"))) + .hasMessageThat() + .isEqualTo("renewal_price must be specified iff renewal_price_behavior is SPECIFIED"); + } + @Test void testSuccess_defaultRegistrationBehavior() throws Exception { runCommand("--tokens", "foobar,blah"); diff --git a/core/src/test/java/google/registry/tools/GetBulkPricingPackageCommandTest.java b/core/src/test/java/google/registry/tools/GetBulkPricingPackageCommandTest.java index 95d7b7a4b..497cf834f 100644 --- a/core/src/test/java/google/registry/tools/GetBulkPricingPackageCommandTest.java +++ b/core/src/test/java/google/registry/tools/GetBulkPricingPackageCommandTest.java @@ -17,6 +17,7 @@ package google.registry.tools; import static com.google.common.truth.Truth.assertThat; import static google.registry.persistence.transaction.TransactionManagerFactory.tm; import static google.registry.testing.DatabaseHelper.persistResource; +import static org.joda.money.CurrencyUnit.USD; import static org.junit.jupiter.api.Assertions.assertThrows; import com.beust.jcommander.ParameterException; @@ -52,8 +53,9 @@ public class GetBulkPricingPackageCommandTest .setAllowedTlds(ImmutableSet.of("foo")) .setAllowedRegistrarIds(ImmutableSet.of("TheRegistrar")) .setRenewalPriceBehavior(RenewalPriceBehavior.SPECIFIED) + .setRenewalPrice(Money.of(USD, 0)) .setAllowedEppActions(ImmutableSet.of(CommandName.CREATE)) - .setDiscountFraction(1) + .setDiscountFraction(1.0) .build()); BulkPricingPackage bulkPricingPackage = new BulkPricingPackage.Builder() @@ -79,8 +81,9 @@ public class GetBulkPricingPackageCommandTest .setAllowedTlds(ImmutableSet.of("foo")) .setAllowedRegistrarIds(ImmutableSet.of("TheRegistrar")) .setRenewalPriceBehavior(RenewalPriceBehavior.SPECIFIED) + .setRenewalPrice(Money.of(USD, 0)) .setAllowedEppActions(ImmutableSet.of(CommandName.CREATE)) - .setDiscountFraction(1) + .setDiscountFraction(1.0) .build()); tm().transact( () -> @@ -102,8 +105,9 @@ public class GetBulkPricingPackageCommandTest .setAllowedTlds(ImmutableSet.of("foo")) .setAllowedRegistrarIds(ImmutableSet.of("TheRegistrar")) .setRenewalPriceBehavior(RenewalPriceBehavior.SPECIFIED) + .setRenewalPrice(Money.of(USD, 0)) .setAllowedEppActions(ImmutableSet.of(CommandName.CREATE)) - .setDiscountFraction(1) + .setDiscountFraction(1.0) .build()); tm().transact( () -> diff --git a/core/src/test/java/google/registry/tools/UpdateAllocationTokensCommandTest.java b/core/src/test/java/google/registry/tools/UpdateAllocationTokensCommandTest.java index f018be8d9..1ec37cd0b 100644 --- a/core/src/test/java/google/registry/tools/UpdateAllocationTokensCommandTest.java +++ b/core/src/test/java/google/registry/tools/UpdateAllocationTokensCommandTest.java @@ -40,6 +40,8 @@ import google.registry.model.domain.fee.FeeQueryCommandExtensionItem.CommandName import google.registry.model.domain.token.AllocationToken; import google.registry.model.domain.token.AllocationToken.RegistrationBehavior; import google.registry.model.domain.token.AllocationToken.TokenStatus; +import org.joda.money.CurrencyUnit; +import org.joda.money.Money; import org.joda.time.DateTime; import org.junit.jupiter.api.Test; @@ -159,16 +161,22 @@ class UpdateAllocationTokensCommandTest extends CommandTestCase + runCommandForced("--prefix", "token", "--renewal_price_behavior", "SPECIFIED"))) + .hasMessageThat() + .isEqualTo("renewalPrice must be specified iff renewalPriceBehavior is SPECIFIED"); + } + @Test void testUpdateRenewalPriceBehavior_setFromNonPremiumToDefault() throws Exception { AllocationToken token = @@ -214,7 +240,10 @@ class UpdateAllocationTokensCommandTest extends CommandTestCase generated by - SchemaCrawler 16.10.1 + SchemaCrawler 16.21.2 generated on - 2024-06-05 18:34:54.436578672 + 2024-06-20 20:07:02 last flyway file @@ -271,2263 +271,2263 @@ td.section {

 

 

- + SchemaCrawler_Diagram - - generated by - SchemaCrawler 16.10.1 - generated on - 2024-06-05 18:34:54.436578672 - + + generated by + SchemaCrawler 16.21.2 + generated on + 2024-06-20 20:07:02 + allocationtoken_a08ccbef - - public.AllocationToken - - [table] - token - - text not null - domain_name - - text - redemption_domain_repo_id - - text - token_type - - text - + + public."AllocationToken" + + [table] + token + + text not null + domain_name + + text + redemption_domain_repo_id + + text + token_type + + text + billingevent_a57d1815 - - public.BillingEvent - - [table] - billing_event_id - - int8 not null - registrar_id - - text not null - domain_history_revision_id - - int8 not null - domain_repo_id - - text not null - event_time - - timestamptz not null - allocation_token - - text - billing_time - - timestamptz - cancellation_matching_billing_recurrence_id - - int8 - synthetic_creation_time - - timestamptz - recurrence_history_revision_id - - int8 - + + public."BillingEvent" + + [table] + billing_event_id + + int8 not null + registrar_id + + text not null + domain_history_revision_id + + int8 not null + domain_repo_id + + text not null + event_time + + timestamptz not null + allocation_token + + text + billing_time + + timestamptz + cancellation_matching_billing_recurrence_id + + int8 + synthetic_creation_time + + timestamptz + recurrence_history_revision_id + + int8 + billingevent_a57d1815:w->allocationtoken_a08ccbef:e - - - - - - - - fk_billing_event_allocation_token + + + + + + + + fk_billing_event_allocation_token domainhistory_a54cc226 - - public.DomainHistory - - [table] - history_revision_id - - int8 not null - history_registrar_id - - text - history_modification_time - - timestamptz not null - history_type - - text not null - creation_time - - timestamptz - domain_repo_id - - text not null - current_package_token - - text - + + public."DomainHistory" + + [table] + history_revision_id + + int8 not null + history_registrar_id + + text + history_modification_time + + timestamptz not null + history_type + + text not null + creation_time + + timestamptz + domain_repo_id + + text not null + current_package_token + + text + billingevent_a57d1815:w->domainhistory_a54cc226:e - - - - - - - - fk_billing_event_domain_history + + + + + + + + fk_billing_event_domain_history billingevent_a57d1815:w->domainhistory_a54cc226:e - - - - - - - - fk_billing_event_domain_history + + + + + + + + fk_billing_event_domain_history billingevent_a57d1815:w->domainhistory_a54cc226:e - - - - - - - - fk_billing_event_recurrence_history + + + + + + + + fk_billing_event_recurrence_history billingevent_a57d1815:w->domainhistory_a54cc226:e - - - - - - - - fk_billing_event_recurrence_history + + + + + + + + fk_billing_event_recurrence_history billingrecurrence_5fa2cb01 - - public.BillingRecurrence - - [table] - billing_recurrence_id - - int8 not null - registrar_id - - text not null - domain_history_revision_id - - int8 not null - domain_repo_id - - text not null - event_time - - timestamptz not null - recurrence_end_time - - timestamptz - recurrence_time_of_year - - text - recurrence_last_expansion - - timestamptz not null - + + public."BillingRecurrence" + + [table] + billing_recurrence_id + + int8 not null + registrar_id + + text not null + domain_history_revision_id + + int8 not null + domain_repo_id + + text not null + event_time + + timestamptz not null + recurrence_end_time + + timestamptz + recurrence_time_of_year + + text + recurrence_last_expansion + + timestamptz not null + billingevent_a57d1815:w->billingrecurrence_5fa2cb01:e - - - - - - - - fk_billing_event_cancellation_matching_billing_recurrence_id + + + + + + + + fk_billing_event_cancellation_matching_billing_recurrence_id registrar_6e1503e3 - - public.Registrar - - [table] + + public."Registrar" + + [table] registrar_id - - text not null + + text not null iana_identifier - - int8 + + int8 registrar_name - - text not null - + + text not null + billingevent_a57d1815:w->registrar_6e1503e3:e - - - - - - - - fk_billing_event_registrar_id + + + + + + + + fk_billing_event_registrar_id domain_6c51cffa - - public.Domain - - [table] - repo_id - - text not null - creation_registrar_id - - text not null - creation_time - - timestamptz not null - current_sponsor_registrar_id - - text not null - deletion_time - - timestamptz - last_epp_update_registrar_id - - text - domain_name - - text - tld - - text - admin_contact - - text - billing_contact - - text - registrant_contact - - text - tech_contact - - text - transfer_billing_cancellation_id - - int8 - transfer_billing_event_id - - int8 - transfer_billing_recurrence_id - - int8 - transfer_gaining_registrar_id - - text - transfer_losing_registrar_id - - text - billing_recurrence_id - - int8 - autorenew_end_time - - timestamptz - current_package_token - - text - lordn_phase - - text not null - + + public."Domain" + + [table] + repo_id + + text not null + creation_registrar_id + + text not null + creation_time + + timestamptz not null + current_sponsor_registrar_id + + text not null + deletion_time + + timestamptz + last_epp_update_registrar_id + + text + domain_name + + text + tld + + text + admin_contact + + text + billing_contact + + text + registrant_contact + + text + tech_contact + + text + transfer_billing_cancellation_id + + int8 + transfer_billing_event_id + + int8 + transfer_billing_recurrence_id + + int8 + transfer_gaining_registrar_id + + text + transfer_losing_registrar_id + + text + billing_recurrence_id + + int8 + autorenew_end_time + + timestamptz + current_package_token + + text + lordn_phase + + text not null + domain_6c51cffa:w->allocationtoken_a08ccbef:e - - - - - - - - fk_domain_current_package_token + + + + + + + + fk_domain_current_package_token domain_6c51cffa:w->billingevent_a57d1815:e - - - - - - - - fk_domain_transfer_billing_event_id + + + + + + + + fk_domain_transfer_billing_event_id billingcancellation_6eedf614 - - public.BillingCancellation - - [table] - billing_cancellation_id - - int8 not null - registrar_id - - text not null - domain_history_revision_id - - int8 not null - domain_repo_id - - text not null - event_time - - timestamptz not null - billing_time - - timestamptz - billing_event_id - - int8 - billing_recurrence_id - - int8 - + + public."BillingCancellation" + + [table] + billing_cancellation_id + + int8 not null + registrar_id + + text not null + domain_history_revision_id + + int8 not null + domain_repo_id + + text not null + event_time + + timestamptz not null + billing_time + + timestamptz + billing_event_id + + int8 + billing_recurrence_id + + int8 + domain_6c51cffa:w->billingcancellation_6eedf614:e - - - - - - - - fk_domain_transfer_billing_cancellation_id + + + + + + + + fk_domain_transfer_billing_cancellation_id domain_6c51cffa:w->billingrecurrence_5fa2cb01:e - - - - - - - - fk_domain_billing_recurrence_id + + + + + + + + fk_domain_billing_recurrence_id domain_6c51cffa:w->billingrecurrence_5fa2cb01:e - - - - - - - - fk_domain_transfer_billing_recurrence_id + + + + + + + + fk_domain_transfer_billing_recurrence_id contact_8de8cb16 - - public.Contact - - [table] - repo_id - - text not null - creation_registrar_id - - text not null - creation_time - - timestamptz not null - current_sponsor_registrar_id - - text not null - deletion_time - - timestamptz - last_epp_update_registrar_id - - text - contact_id - - text - search_name - - text - transfer_gaining_registrar_id - - text - transfer_losing_registrar_id - - text - + + public."Contact" + + [table] + repo_id + + text not null + creation_registrar_id + + text not null + creation_time + + timestamptz not null + current_sponsor_registrar_id + + text not null + deletion_time + + timestamptz + last_epp_update_registrar_id + + text + contact_id + + text + search_name + + text + transfer_gaining_registrar_id + + text + transfer_losing_registrar_id + + text + domain_6c51cffa:w->contact_8de8cb16:e - - - - - - - - fk_domain_admin_contact + + + + + + + + fk_domain_admin_contact domain_6c51cffa:w->contact_8de8cb16:e - - - - - - - - fk_domain_billing_contact + + + + + + + + fk_domain_billing_contact domain_6c51cffa:w->contact_8de8cb16:e - - - - - - - - fk_domain_registrant_contact + + + + + + + + fk_domain_registrant_contact domain_6c51cffa:w->contact_8de8cb16:e - - - - - - - - fk_domain_tech_contact + + + + + + + + fk_domain_tech_contact domain_6c51cffa:w->registrar_6e1503e3:e - - - - - - - - fk2jc69qyg2tv9hhnmif6oa1cx1 + + + + + + + + fk2jc69qyg2tv9hhnmif6oa1cx1 domain_6c51cffa:w->registrar_6e1503e3:e - - - - - - - - fk2u3srsfbei272093m3b3xwj23 + + + + + + + + fk2u3srsfbei272093m3b3xwj23 domain_6c51cffa:w->registrar_6e1503e3:e - - - - - - - - fkjc0r9r5y1lfbt4gpbqw4wsuvq + + + + + + + + fkjc0r9r5y1lfbt4gpbqw4wsuvq domain_6c51cffa:w->registrar_6e1503e3:e - - - - - - - - fk_domain_transfer_gaining_registrar_id + + + + + + + + fk_domain_transfer_gaining_registrar_id domain_6c51cffa:w->registrar_6e1503e3:e - - - - - - - - fk_domain_transfer_losing_registrar_id + + + + + + + + fk_domain_transfer_losing_registrar_id tld_f1fa57e2 - - public.Tld - - [table] - tld_name - - text not null - + + public."Tld" + + [table] + tld_name + + text not null + domain_6c51cffa:w->tld_f1fa57e2:e - - - - - - - - fk_domain_tld + + + + + + + + fk_domain_tld domainhistory_a54cc226:w->allocationtoken_a08ccbef:e - - - - - - - - fk_domain_history_current_package_token + + + + + + + + fk_domain_history_current_package_token domainhistory_a54cc226:w->domain_6c51cffa:e - - - - - - - - fk_domain_history_domain_repo_id + + + + + + + + fk_domain_history_domain_repo_id domainhistory_a54cc226:w->registrar_6e1503e3:e - - - - - - - - fk_domain_history_registrar_id + + + + + + + + fk_domain_history_registrar_id billingcancellation_6eedf614:w->billingevent_a57d1815:e - - - - - - - - fk_billing_cancellation_billing_event_id + + + + + + + + fk_billing_cancellation_billing_event_id billingcancellation_6eedf614:w->domainhistory_a54cc226:e - - - - - - - - fk_billing_cancellation_domain_history + + + + + + + + fk_billing_cancellation_domain_history billingcancellation_6eedf614:w->domainhistory_a54cc226:e - - - - - - - - fk_billing_cancellation_domain_history + + + + + + + + fk_billing_cancellation_domain_history billingcancellation_6eedf614:w->billingrecurrence_5fa2cb01:e - - - - - - - - fk_billing_cancellation_billing_recurrence_id + + + + + + + + fk_billing_cancellation_billing_recurrence_id billingcancellation_6eedf614:w->registrar_6e1503e3:e - - - - - - - - fk_billing_cancellation_registrar_id + + + + + + + + fk_billing_cancellation_registrar_id graceperiod_cd3b2e8f - - public.GracePeriod - - [table] - grace_period_id - - int8 not null - billing_event_id - - int8 - billing_recurrence_id - - int8 - registrar_id - - text not null - domain_repo_id - - text not null - + + public."GracePeriod" + + [table] + grace_period_id + + int8 not null + billing_event_id + + int8 + billing_recurrence_id + + int8 + registrar_id + + text not null + domain_repo_id + + text not null + graceperiod_cd3b2e8f:w->billingevent_a57d1815:e - - - - - - - - fk_grace_period_billing_event_id + + + + + + + + fk_grace_period_billing_event_id graceperiod_cd3b2e8f:w->domain_6c51cffa:e - - - - - - - - fk_grace_period_domain_repo_id + + + + + + + + fk_grace_period_domain_repo_id graceperiod_cd3b2e8f:w->billingrecurrence_5fa2cb01:e - - - - - - - - fk_grace_period_billing_recurrence_id + + + + + + + + fk_grace_period_billing_recurrence_id graceperiod_cd3b2e8f:w->registrar_6e1503e3:e - - - - - - - - fk_grace_period_registrar_id + + + + + + + + fk_grace_period_registrar_id billingrecurrence_5fa2cb01:w->domainhistory_a54cc226:e - - - - - - - - fk_billing_recurrence_domain_history + + + + + + + + fk_billing_recurrence_domain_history billingrecurrence_5fa2cb01:w->domainhistory_a54cc226:e - - - - - - - - fk_billing_recurrence_domain_history + + + + + + + + fk_billing_recurrence_domain_history billingrecurrence_5fa2cb01:w->registrar_6e1503e3:e - - - - - - - - fk_billing_recurrence_registrar_id + + + + + + + + fk_billing_recurrence_registrar_id bsadomainrefresh_c8f4c45d - - public.BsaDomainRefresh - - [table] - job_id - - bigserial not null - - auto-incremented - + + public."BsaDomainRefresh" + + [table] + job_id + + bigserial not null + + auto-incremented + bsadownload_98d031ce - - public.BsaDownload - - [table] - job_id - - bigserial not null - - auto-incremented - creation_time - - timestamptz not null - + + public."BsaDownload" + + [table] + job_id + + bigserial not null + + auto-incremented + creation_time + + timestamptz not null + bsalabel_2755e1da - - public.BsaLabel - - [table] - label - - text not null - + + public."BsaLabel" + + [table] + label + + text not null + bsaunblockabledomain_b739a38 - - public.BsaUnblockableDomain - - [table] - label - - text not null - tld - - text not null - + + public."BsaUnblockableDomain" + + [table] + label + + text not null + tld + + text not null + bsaunblockabledomain_b739a38:w->bsalabel_2755e1da:e - - - - - - - - fkbsaunblockabledomainlabel + + + + + + + + fkbsaunblockabledomainlabel claimsentry_105da9f1 - - public.ClaimsEntry - - [table] - revision_id - - int8 not null - domain_label - - text not null - + + public."ClaimsEntry" + + [table] + revision_id + + int8 not null + domain_label + + text not null + claimslist_3d49bc2b - - public.ClaimsList - - [table] - revision_id - - bigserial not null - - auto-incremented - + + public."ClaimsList" + + [table] + revision_id + + bigserial not null + + auto-incremented + claimsentry_105da9f1:w->claimslist_3d49bc2b:e - - - - - - - - fk6sc6at5hedffc0nhdcab6ivuq + + + + + + + + fk6sc6at5hedffc0nhdcab6ivuq consoleeppactionhistory_bcc2a2c6 - - public.ConsoleEppActionHistory - - [table] - history_revision_id - - int8 not null - repo_id - - text not null - revision_id - - int8 not null - history_acting_user - - text not null - + + public."ConsoleEppActionHistory" + + [table] + history_revision_id + + int8 not null + repo_id + + text not null + revision_id + + int8 not null + history_acting_user + + text not null + user_f2216f01 - - public."User" - - [table] - id - - bigserial not null - - auto-incremented - email_address - - text not null - + + public."User" + + [table] + id + + bigserial not null + + auto-incremented + email_address + + text not null + consoleeppactionhistory_bcc2a2c6:w->user_f2216f01:e - - - - - - - - fkb686b9os2nsjpv930npa4r3b4 + + + + + + + + fkb686b9os2nsjpv930npa4r3b4 contact_8de8cb16:w->registrar_6e1503e3:e - - - - - - - - fk1sfyj7o7954prbn1exk7lpnoe + + + + + + + + fk1sfyj7o7954prbn1exk7lpnoe contact_8de8cb16:w->registrar_6e1503e3:e - - - - - - - - fk93c185fx7chn68uv7nl6uv2s0 + + + + + + + + fk93c185fx7chn68uv7nl6uv2s0 contact_8de8cb16:w->registrar_6e1503e3:e - - - - - - - - fkmb7tdiv85863134w1wogtxrb2 + + + + + + + + fkmb7tdiv85863134w1wogtxrb2 contact_8de8cb16:w->registrar_6e1503e3:e - - - - - - - - fk_contact_transfer_gaining_registrar_id + + + + + + + + fk_contact_transfer_gaining_registrar_id contact_8de8cb16:w->registrar_6e1503e3:e - - - - - - - - fk_contact_transfer_losing_registrar_id + + + + + + + + fk_contact_transfer_losing_registrar_id contacthistory_d2964f8a - - public.ContactHistory - - [table] - history_revision_id - - int8 not null - history_registrar_id - - text - history_modification_time - - timestamptz not null - history_type - - text not null - creation_time - - timestamptz - contact_repo_id - - text not null - + + public."ContactHistory" + + [table] + history_revision_id + + int8 not null + history_registrar_id + + text + history_modification_time + + timestamptz not null + history_type + + text not null + creation_time + + timestamptz + contact_repo_id + + text not null + contacthistory_d2964f8a:w->contact_8de8cb16:e - - - - - - - - fk_contact_history_contact_repo_id + + + + + + + + fk_contact_history_contact_repo_id contacthistory_d2964f8a:w->registrar_6e1503e3:e - - - - - - - - fk_contact_history_registrar_id + + + + + + + + fk_contact_history_registrar_id pollmessage_614a523e - - public.PollMessage - - [table] - poll_message_id - - int8 not null - registrar_id - - text not null - contact_repo_id - - text - contact_history_revision_id - - int8 - domain_repo_id - - text - domain_history_revision_id - - int8 - event_time - - timestamptz not null - host_repo_id - - text - host_history_revision_id - - int8 - transfer_response_gaining_registrar_id - - text - transfer_response_losing_registrar_id - - text - + + public."PollMessage" + + [table] + poll_message_id + + int8 not null + registrar_id + + text not null + contact_repo_id + + text + contact_history_revision_id + + int8 + domain_repo_id + + text + domain_history_revision_id + + int8 + event_time + + timestamptz not null + host_repo_id + + text + host_history_revision_id + + int8 + transfer_response_gaining_registrar_id + + text + transfer_response_losing_registrar_id + + text + pollmessage_614a523e:w->domain_6c51cffa:e - - - - - - - - fk_poll_message_domain_repo_id + + + + + + + + fk_poll_message_domain_repo_id pollmessage_614a523e:w->domainhistory_a54cc226:e - - - - - - - - fk_poll_message_domain_history + + + + + + + + fk_poll_message_domain_history pollmessage_614a523e:w->domainhistory_a54cc226:e - - - - - - - - fk_poll_message_domain_history + + + + + + + + fk_poll_message_domain_history pollmessage_614a523e:w->contact_8de8cb16:e - - - - - - - - fk_poll_message_contact_repo_id + + + + + + + + fk_poll_message_contact_repo_id pollmessage_614a523e:w->contacthistory_d2964f8a:e - - - - - - - - fk_poll_message_contact_history + + + + + + + + fk_poll_message_contact_history pollmessage_614a523e:w->contacthistory_d2964f8a:e - - - - - - - - fk_poll_message_contact_history + + + + + + + + fk_poll_message_contact_history host_f21b78de - - public.Host - - [table] - repo_id - - text not null - creation_registrar_id - - text - creation_time - - timestamptz - current_sponsor_registrar_id - - text - deletion_time - - timestamptz - last_epp_update_registrar_id - - text - host_name - - text - superordinate_domain - - text - inet_addresses - - _text - + + public."Host" + + [table] + repo_id + + text not null + creation_registrar_id + + text + creation_time + + timestamptz + current_sponsor_registrar_id + + text + deletion_time + + timestamptz + last_epp_update_registrar_id + + text + host_name + + text + superordinate_domain + + text + inet_addresses + + _text + pollmessage_614a523e:w->host_f21b78de:e - - - - - - - - fk_poll_message_host_repo_id + + + + + + + + fk_poll_message_host_repo_id hosthistory_56210c2 - - public.HostHistory - - [table] - history_revision_id - - int8 not null - history_registrar_id - - text not null - history_modification_time - - timestamptz not null - history_type - - text not null - host_name - - text - creation_time - - timestamptz - host_repo_id - - text not null - + + public."HostHistory" + + [table] + history_revision_id + + int8 not null + history_registrar_id + + text not null + history_modification_time + + timestamptz not null + history_type + + text not null + host_name + + text + creation_time + + timestamptz + host_repo_id + + text not null + pollmessage_614a523e:w->hosthistory_56210c2:e - - - - - - - - fk_poll_message_host_history + + + + + + + + fk_poll_message_host_history pollmessage_614a523e:w->hosthistory_56210c2:e - - - - - - - - fk_poll_message_host_history + + + + + + + + fk_poll_message_host_history pollmessage_614a523e:w->registrar_6e1503e3:e - - - - - - - - fk_poll_message_registrar_id + + + + + + + + fk_poll_message_registrar_id pollmessage_614a523e:w->registrar_6e1503e3:e - - - - - - - - fk_poll_message_transfer_response_gaining_registrar_id + + + + + + + + fk_poll_message_transfer_response_gaining_registrar_id pollmessage_614a523e:w->registrar_6e1503e3:e - - - - - - - - fk_poll_message_transfer_response_losing_registrar_id + + + + + + + + fk_poll_message_transfer_response_losing_registrar_id cursor_6af40e8c - - public."Cursor" - - [table] - "scope" - - text not null - type - - text not null - + + public."Cursor" + + [table] + "scope" + + text not null + type + + text not null + delegationsignerdata_e542a872 - - public.DelegationSignerData - - [table] - domain_repo_id - - text not null - key_tag - - int4 not null - algorithm - - int4 not null - digest - - bytea not null - digest_type - - int4 not null - + + public."DelegationSignerData" + + [table] + domain_repo_id + + text not null + key_tag + + int4 not null + algorithm + + int4 not null + digest + + bytea not null + digest_type + + int4 not null + delegationsignerdata_e542a872:w->domain_6c51cffa:e - - - - - - - - fktr24j9v14ph2mfuw2gsmt12kq + + + + + + + + fktr24j9v14ph2mfuw2gsmt12kq dnsrefreshrequest_4e6affb3 - - public.DnsRefreshRequest - - [table] - id - - bigserial not null - - auto-incremented - request_time - - timestamptz not null - last_process_time - - timestamptz not null - + + public."DnsRefreshRequest" + + [table] + id + + bigserial not null + + auto-incremented + request_time + + timestamptz not null + last_process_time + + timestamptz not null + domainhost_1ea127c2 - - public.DomainHost - - [table] - domain_repo_id - - text not null - host_repo_id - - text - + + public."DomainHost" + + [table] + domain_repo_id + + text not null + host_repo_id + + text + domainhost_1ea127c2:w->domain_6c51cffa:e - - - - - - - - fkfmi7bdink53swivs390m2btxg + + + + + + + + fkfmi7bdink53swivs390m2btxg domainhost_1ea127c2:w->host_f21b78de:e - - - - - - - - fk_domainhost_host_valid + + + + + + + + fk_domainhost_host_valid host_f21b78de:w->domain_6c51cffa:e - - - - - - - - fk_host_superordinate_domain + + + + + + + + fk_host_superordinate_domain host_f21b78de:w->registrar_6e1503e3:e - - - - - - - - fk_host_creation_registrar_id + + + + + + + + fk_host_creation_registrar_id host_f21b78de:w->registrar_6e1503e3:e - - - - - - - - fk_host_current_sponsor_registrar_id + + + + + + + + fk_host_current_sponsor_registrar_id host_f21b78de:w->registrar_6e1503e3:e - - - - - - - - fk_host_last_epp_update_registrar_id + + + + + + + + fk_host_last_epp_update_registrar_id domaindsdatahistory_995b060d - - public.DomainDsDataHistory - - [table] - ds_data_history_revision_id - - int8 not null - domain_history_revision_id - - int8 not null - domain_repo_id - - text - + + public."DomainDsDataHistory" + + [table] + ds_data_history_revision_id + + int8 not null + domain_history_revision_id + + int8 not null + domain_repo_id + + text + domaindsdatahistory_995b060d:w->domainhistory_a54cc226:e - - - - - - - - fko4ilgyyfnvppbpuivus565i0j + + + + + + + + fko4ilgyyfnvppbpuivus565i0j domaindsdatahistory_995b060d:w->domainhistory_a54cc226:e - - - - - - - - fko4ilgyyfnvppbpuivus565i0j + + + + + + + + fko4ilgyyfnvppbpuivus565i0j domainhistoryhost_9f3f23ee - - public.DomainHistoryHost - - [table] - domain_history_history_revision_id - - int8 not null - host_repo_id - - text - domain_history_domain_repo_id - - text not null - + + public."DomainHistoryHost" + + [table] + domain_history_history_revision_id + + int8 not null + host_repo_id + + text + domain_history_domain_repo_id + + text not null + domainhistoryhost_9f3f23ee:w->domainhistory_a54cc226:e - - - - - - - - fka9woh3hu8gx5x0vly6bai327n + + + + + + + + fka9woh3hu8gx5x0vly6bai327n domainhistoryhost_9f3f23ee:w->domainhistory_a54cc226:e - - - - - - - - fka9woh3hu8gx5x0vly6bai327n + + + + + + + + fka9woh3hu8gx5x0vly6bai327n domaintransactionrecord_6e77ff61 - - public.DomainTransactionRecord - - [table] - id - - bigserial not null - - auto-incremented - tld - - text not null - domain_repo_id - - text - history_revision_id - - int8 - + + public."DomainTransactionRecord" + + [table] + id + + bigserial not null + + auto-incremented + tld + + text not null + domain_repo_id + + text + history_revision_id + + int8 + domaintransactionrecord_6e77ff61:w->domainhistory_a54cc226:e - - - - - - - - fkcjqe54u72kha71vkibvxhjye7 + + + + + + + + fkcjqe54u72kha71vkibvxhjye7 domaintransactionrecord_6e77ff61:w->domainhistory_a54cc226:e - - - - - - - - fkcjqe54u72kha71vkibvxhjye7 + + + + + + + + fkcjqe54u72kha71vkibvxhjye7 domaintransactionrecord_6e77ff61:w->tld_f1fa57e2:e - - - - - - - - fk_domain_transaction_record_tld + + + + + + + + fk_domain_transaction_record_tld graceperiodhistory_40ccc1f1 - - public.GracePeriodHistory - - [table] - grace_period_history_revision_id - - int8 not null - domain_repo_id - - text not null - domain_history_revision_id - - int8 - + + public."GracePeriodHistory" + + [table] + grace_period_history_revision_id + + int8 not null + domain_repo_id + + text not null + domain_history_revision_id + + int8 + graceperiodhistory_40ccc1f1:w->domainhistory_a54cc226:e - - - - - - - - fk7w3cx8d55q8bln80e716tr7b8 + + + + + + + + fk7w3cx8d55q8bln80e716tr7b8 graceperiodhistory_40ccc1f1:w->domainhistory_a54cc226:e - - - - - - - - fk7w3cx8d55q8bln80e716tr7b8 + + + + + + + + fk7w3cx8d55q8bln80e716tr7b8 featureflag_3ee43a78 - - public.FeatureFlag - - [table] - feature_name - - text not null - + + public."FeatureFlag" + + [table] + feature_name + + text not null + hosthistory_56210c2:w->host_f21b78de:e - - - - - - - - fk_hosthistory_host + + + + + + + + fk_hosthistory_host hosthistory_56210c2:w->registrar_6e1503e3:e - - - - - - - - fk_history_registrar_id + + + + + + + + fk_history_registrar_id lock_f21d4861 - - public.Lock - - [table] - resource_name - - text not null - "scope" - - text not null - + + public."Lock" + + [table] + resource_name + + text not null + "scope" + + text not null + packagepromotion_56aa33 - - public.PackagePromotion - - [table] - package_promotion_id - - bigserial not null - - auto-incremented - token - - text not null - + + public."PackagePromotion" + + [table] + package_promotion_id + + bigserial not null + + auto-incremented + token + + text not null + premiumentry_b0060b91 - - public.PremiumEntry - - [table] - revision_id - - int8 not null - domain_label - - text not null - + + public."PremiumEntry" + + [table] + revision_id + + int8 not null + domain_label + + text not null + premiumlist_7c3ea68b - - public.PremiumList - - [table] - revision_id - - bigserial not null - - auto-incremented - name - - text not null - + + public."PremiumList" + + [table] + revision_id + + bigserial not null + + auto-incremented + name + + text not null + premiumentry_b0060b91:w->premiumlist_7c3ea68b:e - - - - - - - - fko0gw90lpo1tuee56l0nb6y6g5 + + + + + + + + fko0gw90lpo1tuee56l0nb6y6g5 rderevision_83396864 - - public.RdeRevision - - [table] - tld - - text not null - mode - - text not null - "date" - - date not null - + + public."RdeRevision" + + [table] + tld + + text not null + mode + + text not null + "date" + + date not null + registrarpoc_ab47054d - - public.RegistrarPoc - - [table] - email_address - - text not null - registrar_id - - text not null - login_email_address - - text - + + public."RegistrarPoc" + + [table] + email_address + + text not null + registrar_id + + text not null + login_email_address + + text + registrarpoc_ab47054d:w->registrar_6e1503e3:e - - - - - - - - fk_registrar_poc_registrar_id + + + + + + + + fk_registrar_poc_registrar_id registrarupdatehistory_8a38bed4 - - public.RegistrarUpdateHistory - - [table] - history_revision_id - - int8 not null - registrar_id - - text not null - history_acting_user - - text not null - + + public."RegistrarUpdateHistory" + + [table] + history_revision_id + + int8 not null + registrar_id + + text not null + history_acting_user + + text not null + registrarupdatehistory_8a38bed4:w->registrar_6e1503e3:e - - - - - - - - fkregistrarupdatehistoryregistrarid + + + + + + + + fkregistrarupdatehistoryregistrarid registrarupdatehistory_8a38bed4:w->user_f2216f01:e - - - - - - - - fksr7w342s7x5s5jvdti2axqeq8 + + + + + + + + fksr7w342s7x5s5jvdti2axqeq8 registrarpocupdatehistory_31e5d9aa - - public.RegistrarPocUpdateHistory - - [table] - history_revision_id - - int8 not null - email_address - - text not null - registrar_id - - text not null - history_acting_user - - text not null - + + public."RegistrarPocUpdateHistory" + + [table] + history_revision_id + + int8 not null + email_address + + text not null + registrar_id + + text not null + history_acting_user + + text not null + registrarpocupdatehistory_31e5d9aa:w->registrarpoc_ab47054d:e - - - - - - - - fkregistrarpocupdatehistoryemailaddress + + + + + + + + fkregistrarpocupdatehistoryemailaddress registrarpocupdatehistory_31e5d9aa:w->registrarpoc_ab47054d:e - - - - - - - - fkregistrarpocupdatehistoryemailaddress + + + + + + + + fkregistrarpocupdatehistoryemailaddress registrarpocupdatehistory_31e5d9aa:w->user_f2216f01:e - - - - - - - - fkftpbwctxtkc1i0njc0tdcaa2g + + + + + + + + fkftpbwctxtkc1i0njc0tdcaa2g registrylock_ac88663e - - public.RegistryLock - - [table] - revision_id - - bigserial not null - - auto-incremented - registrar_id - - text not null - repo_id - - text not null - verification_code - - text not null - relock_revision_id - - int8 - + + public."RegistryLock" + + [table] + revision_id + + bigserial not null + + auto-incremented + registrar_id + + text not null + repo_id + + text not null + verification_code + + text not null + relock_revision_id + + int8 + registrylock_ac88663e:w->registrylock_ac88663e:e - - - - - - - - fk2lhcwpxlnqijr96irylrh1707 + + + + + + + + fk2lhcwpxlnqijr96irylrh1707 reservedentry_1a7b8520 - - public.ReservedEntry - - [table] - revision_id - - int8 not null - domain_label - - text not null - + + public."ReservedEntry" + + [table] + revision_id + + int8 not null + domain_label + + text not null + reservedlist_b97c3f1c - - public.ReservedList - - [table] - revision_id - - bigserial not null - - auto-incremented - name - - text not null - + + public."ReservedList" + + [table] + revision_id + + bigserial not null + + auto-incremented + name + + text not null + reservedentry_1a7b8520:w->reservedlist_b97c3f1c:e - - - - - - - - fkgq03rk0bt1hb915dnyvd3vnfc + + + + + + + + fkgq03rk0bt1hb915dnyvd3vnfc serversecret_6cc90f09 - - public.ServerSecret - - [table] - id - - int8 not null - + + public."ServerSecret" + + [table] + id + + int8 not null + signedmarkrevocationentry_99c39721 - - public.SignedMarkRevocationEntry - - [table] - revision_id - - int8 not null - smd_id - - text not null - + + public."SignedMarkRevocationEntry" + + [table] + revision_id + + int8 not null + smd_id + + text not null + signedmarkrevocationlist_c5d968fb - - public.SignedMarkRevocationList - - [table] - revision_id - - bigserial not null - - auto-incremented - + + public."SignedMarkRevocationList" + + [table] + revision_id + + bigserial not null + + auto-incremented + signedmarkrevocationentry_99c39721:w->signedmarkrevocationlist_c5d968fb:e - - - - - - - - fk5ivlhvs3121yx2li5tqh54u4 + + + + + + + + fk5ivlhvs3121yx2li5tqh54u4 spec11threatmatch_a61228a6 - - public.Spec11ThreatMatch - - [table] - id - - bigserial not null - - auto-incremented - check_date - - date not null - registrar_id - - text not null - tld - - text not null - + + public."Spec11ThreatMatch" + + [table] + id + + bigserial not null + + auto-incremented + check_date + + date not null + registrar_id + + text not null + tld + + text not null + tmchcrl_d282355 - - public.TmchCrl - - [table] - id - - int8 not null - + + public."TmchCrl" + + [table] + id + + int8 not null + userupdatehistory_24efd476 - - public.UserUpdateHistory - - [table] - history_revision_id - - int8 not null - email_address - - text not null - history_acting_user - - text not null - + + public."UserUpdateHistory" + + [table] + history_revision_id + + int8 not null + email_address + + text not null + history_acting_user + + text not null + userupdatehistory_24efd476:w->user_f2216f01:e - - - - - - - - fkuserupdatehistoryemailaddress + + + + + + + + fkuserupdatehistoryemailaddress userupdatehistory_24efd476:w->user_f2216f01:e - - - - - - - - fk1s7bopbl3pwrhv3jkkofnv3o0 + + + + + + + + fk1s7bopbl3pwrhv3jkkofnv3o0

Tables

- @@ -2560,7 +2560,7 @@ td.section { - + @@ -2583,7 +2583,7 @@ td.section { - + @@ -2595,7 +2595,7 @@ td.section { - + @@ -2607,15 +2607,15 @@ td.section { - +
- public.AllocationToken [table] + + public."AllocationToken" [table]
AllocationToken_pkey"AllocationToken_pkey" [primary key]
token ←(0..many) public.BillingEvent.allocation_tokentoken ←(0..many) public."BillingEvent".allocation_token
token ←(0..many) public.Domain.current_package_tokentoken ←(0..many) public."Domain".current_package_token
token ←(0..many) public.DomainHistory.current_package_tokentoken ←(0..many) public."DomainHistory".current_package_token

 

- @@ -2668,7 +2668,7 @@ td.section { - + @@ -2685,25 +2685,13 @@ td.section { - - - - - - - - - - - - - + @@ -2715,7 +2703,7 @@ td.section { - + @@ -2727,7 +2715,19 @@ td.section { - + + + + + + + + + + + + + @@ -2739,20 +2739,20 @@ td.section { - + - +
- public.BillingCancellation [table] + + public."BillingCancellation" [table]
BillingCancellation_pkey"BillingCancellation_pkey" [primary key]
fk_domain_transfer_billing_cancellation_id[foreign key, with no action]
billing_cancellation_id ←(0..many) public.Domain.transfer_billing_cancellation_id
fk_billing_cancellation_billing_event_id [foreign key, with no action]
billing_event_id (0..many)→ public.BillingEvent.billing_event_idbilling_event_id (0..many)→ public."BillingEvent".billing_event_id
billing_recurrence_id (0..many)→ public.BillingRecurrence.billing_recurrence_idbilling_recurrence_id (0..many)→ public."BillingRecurrence".billing_recurrence_id
registrar_id (0..many)→ public.Registrar.registrar_idregistrar_id (0..many)→ public."Registrar".registrar_id
fk_domain_transfer_billing_cancellation_id[foreign key, with no action]
billing_cancellation_id ←(0..many) public."Domain".transfer_billing_cancellation_id
domain_repo_id (0..many)→ public.DomainHistory.domain_repo_iddomain_repo_id (0..many)→ public."DomainHistory".domain_repo_id
domain_history_revision_id (0..many)→ public.DomainHistory.history_revision_iddomain_history_revision_id (0..many)→ public."DomainHistory".history_revision_id

 

- @@ -2815,7 +2815,7 @@ td.section { - + @@ -2832,49 +2832,25 @@ td.section { - - - - - - - - - - - - - + - + - - - - - - - - - - - - - + @@ -2886,7 +2862,7 @@ td.section { - + @@ -2898,7 +2874,31 @@ td.section { - + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2910,12 +2910,12 @@ td.section { - + - + @@ -2927,20 +2927,20 @@ td.section { - + - +
- public.BillingEvent [table] + + public."BillingEvent" [table]
BillingEvent_pkey"BillingEvent_pkey" [primary key]
fk_billing_event_allocation_token[foreign key, with no action]
allocation_token (0..many)→ public.AllocationToken.token
fk_billing_cancellation_billing_event_id [foreign key, with no action]
billing_event_id ←(0..many) public.BillingCancellation.billing_event_idbilling_event_id ←(0..many) public."BillingCancellation".billing_event_id
fk_domain_transfer_billing_event_idfk_billing_event_allocation_token [foreign key, with no action]
billing_event_id ←(0..many) public.Domain.transfer_billing_event_id
fk_grace_period_billing_event_id[foreign key, with no action]
billing_event_id ←(0..many) public.GracePeriod.billing_event_idallocation_token (0..many)→ public."AllocationToken".token
cancellation_matching_billing_recurrence_id (0..many)→ public.BillingRecurrence.billing_recurrence_idcancellation_matching_billing_recurrence_id (0..many)→ public."BillingRecurrence".billing_recurrence_id
registrar_id (0..many)→ public.Registrar.registrar_idregistrar_id (0..many)→ public."Registrar".registrar_id
fk_domain_transfer_billing_event_id[foreign key, with no action]
billing_event_id ←(0..many) public."Domain".transfer_billing_event_id
fk_grace_period_billing_event_id[foreign key, with no action]
billing_event_id ←(0..many) public."GracePeriod".billing_event_id
domain_repo_id (0..many)→ public.DomainHistory.domain_repo_iddomain_repo_id (0..many)→ public."DomainHistory".domain_repo_id
domain_history_revision_id (0..many)→ public.DomainHistory.history_revision_iddomain_history_revision_id (0..many)→ public."DomainHistory".history_revision_id
domain_repo_id (0..many)→ public.DomainHistory.domain_repo_iddomain_repo_id (0..many)→ public."DomainHistory".domain_repo_id
recurrence_history_revision_id (0..many)→ public.DomainHistory.history_revision_idrecurrence_history_revision_id (0..many)→ public."DomainHistory".history_revision_id

 

- @@ -2993,7 +2993,7 @@ td.section { - + @@ -3016,7 +3016,7 @@ td.section { - + @@ -3028,43 +3028,7 @@ td.section { - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -3076,7 +3040,43 @@ td.section { - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3088,20 +3088,20 @@ td.section { - + - +
- public.BillingRecurrence [table] + + public."BillingRecurrence" [table]
BillingRecurrence_pkey"BillingRecurrence_pkey" [primary key]
billing_recurrence_id ←(0..many) public.BillingCancellation.billing_recurrence_idbilling_recurrence_id ←(0..many) public."BillingCancellation".billing_recurrence_id
billing_recurrence_id ←(0..many) public.BillingEvent.cancellation_matching_billing_recurrence_id
fk_domain_billing_recurrence_id[foreign key, with no action]
billing_recurrence_id ←(0..many) public.Domain.billing_recurrence_id
fk_domain_transfer_billing_recurrence_id[foreign key, with no action]
billing_recurrence_id ←(0..many) public.Domain.transfer_billing_recurrence_id
fk_grace_period_billing_recurrence_id[foreign key, with no action]
billing_recurrence_id ←(0..many) public.GracePeriod.billing_recurrence_idbilling_recurrence_id ←(0..many) public."BillingEvent".cancellation_matching_billing_recurrence_id
registrar_id (0..many)→ public.Registrar.registrar_idregistrar_id (0..many)→ public."Registrar".registrar_id
fk_domain_billing_recurrence_id[foreign key, with no action]
billing_recurrence_id ←(0..many) public."Domain".billing_recurrence_id
fk_domain_transfer_billing_recurrence_id[foreign key, with no action]
billing_recurrence_id ←(0..many) public."Domain".transfer_billing_recurrence_id
fk_grace_period_billing_recurrence_id[foreign key, with no action]
billing_recurrence_id ←(0..many) public."GracePeriod".billing_recurrence_id
domain_repo_id (0..many)→ public.DomainHistory.domain_repo_iddomain_repo_id (0..many)→ public."DomainHistory".domain_repo_id
domain_history_revision_id (0..many)→ public.DomainHistory.history_revision_iddomain_history_revision_id (0..many)→ public."DomainHistory".history_revision_id

 

- @@ -3124,7 +3124,7 @@ td.section { - + @@ -3136,8 +3136,8 @@ td.section {
- public.BsaDomainRefresh [table] + + public."BsaDomainRefresh" [table]
BsaDomainRefresh_pkey"BsaDomainRefresh_pkey" [primary key]

 

- @@ -3165,7 +3165,7 @@ td.section { - + @@ -3177,8 +3177,8 @@ td.section {
- public.BsaDownload [table] + + public."BsaDownload" [table]
BsaDownload_pkey"BsaDownload_pkey" [primary key]

 

- @@ -3196,7 +3196,7 @@ td.section { - + @@ -3219,15 +3219,15 @@ td.section { - +
- public.BsaLabel [table] + + public."BsaLabel" [table]
BsaLabel_pkey"BsaLabel_pkey" [primary key]
label ←(0..many) public.BsaUnblockableDomain.labellabel ←(0..many) public."BsaUnblockableDomain".label

 

- @@ -3250,7 +3250,7 @@ td.section { - + @@ -3278,15 +3278,15 @@ td.section { - +
- public.BsaUnblockableDomain [table] + + public."BsaUnblockableDomain" [table]
BsaUnblockableDomain_pkey"BsaUnblockableDomain_pkey" [primary key]
label (0..many)→ public.BsaLabel.labellabel (0..many)→ public."BsaLabel".label

 

- @@ -3309,7 +3309,7 @@ td.section { - + @@ -3337,15 +3337,15 @@ td.section { - +
- public.ClaimsEntry [table] + + public."ClaimsEntry" [table]
ClaimsEntry_pkey"ClaimsEntry_pkey" [primary key]
revision_id (0..many)→ public.ClaimsList.revision_idrevision_id (0..many)→ public."ClaimsList".revision_id

 

- @@ -3368,7 +3368,7 @@ td.section { - + @@ -3391,15 +3391,15 @@ td.section { - +
- public.ClaimsList [table] + + public."ClaimsList" [table]
ClaimsList_pkey"ClaimsList_pkey" [primary key]
revision_id ←(0..many) public.ClaimsEntry.revision_idrevision_id ←(0..many) public."ClaimsEntry".revision_id

 

- @@ -3432,7 +3432,7 @@ td.section { - + @@ -3462,8 +3462,8 @@ td.section {
- public.ConsoleEppActionHistory [table] + + public."ConsoleEppActionHistory" [table]
ConsoleEppActionHistory_pkey"ConsoleEppActionHistory_pkey" [primary key]

 

- @@ -3526,7 +3526,7 @@ td.section { - + @@ -3543,85 +3543,13 @@ td.section { - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -3633,7 +3561,7 @@ td.section { - + @@ -3645,7 +3573,7 @@ td.section { - + @@ -3657,7 +3585,7 @@ td.section { - + @@ -3669,15 +3597,87 @@ td.section { - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
- public.Contact [table] + + public."Contact" [table]
Contact_pkey"Contact_pkey" [primary key]
fk_contact_history_contact_repo_id[foreign key, with no action]
repo_id ←(0..many) public.ContactHistory.contact_repo_id
fk_domain_admin_contact[foreign key, with no action]
repo_id ←(0..many) public.Domain.admin_contact
fk_domain_billing_contact[foreign key, with no action]
repo_id ←(0..many) public.Domain.billing_contact
fk_domain_registrant_contact[foreign key, with no action]
repo_id ←(0..many) public.Domain.registrant_contact
fk_domain_tech_contact[foreign key, with no action]
repo_id ←(0..many) public.Domain.tech_contact
fk_poll_message_contact_repo_id[foreign key, with no action]
repo_id ←(0..many) public.PollMessage.contact_repo_id
fk1sfyj7o7954prbn1exk7lpnoe [foreign key, with no action]
creation_registrar_id (0..many)→ public.Registrar.registrar_idcreation_registrar_id (0..many)→ public."Registrar".registrar_id
current_sponsor_registrar_id (0..many)→ public.Registrar.registrar_idcurrent_sponsor_registrar_id (0..many)→ public."Registrar".registrar_id
last_epp_update_registrar_id (0..many)→ public.Registrar.registrar_idlast_epp_update_registrar_id (0..many)→ public."Registrar".registrar_id
transfer_gaining_registrar_id (0..many)→ public.Registrar.registrar_idtransfer_gaining_registrar_id (0..many)→ public."Registrar".registrar_id
transfer_losing_registrar_id (0..many)→ public.Registrar.registrar_idtransfer_losing_registrar_id (0..many)→ public."Registrar".registrar_id
fk_contact_history_contact_repo_id[foreign key, with no action]
repo_id ←(0..many) public."ContactHistory".contact_repo_id
fk_domain_admin_contact[foreign key, with no action]
repo_id ←(0..many) public."Domain".admin_contact
fk_domain_billing_contact[foreign key, with no action]
repo_id ←(0..many) public."Domain".billing_contact
fk_domain_registrant_contact[foreign key, with no action]
repo_id ←(0..many) public."Domain".registrant_contact
fk_domain_tech_contact[foreign key, with no action]
repo_id ←(0..many) public."Domain".tech_contact
fk_poll_message_contact_repo_id[foreign key, with no action]
repo_id ←(0..many) public."PollMessage".contact_repo_id

 

- @@ -3720,7 +3720,7 @@ td.section { - + @@ -3748,7 +3748,7 @@ td.section { - + @@ -3760,7 +3760,7 @@ td.section { - + @@ -3772,19 +3772,19 @@ td.section { - + - +
- public.ContactHistory [table] + + public."ContactHistory" [table]
ContactHistory_pkey"ContactHistory_pkey" [primary key]
contact_repo_id (0..many)→ public.Contact.repo_idcontact_repo_id (0..many)→ public."Contact".repo_id
history_registrar_id (0..many)→ public.Registrar.registrar_idhistory_registrar_id (0..many)→ public."Registrar".registrar_id
contact_repo_id ←(0..many) public.PollMessage.contact_repo_idcontact_repo_id ←(0..many) public."PollMessage".contact_repo_id
history_revision_id ←(0..many) public.PollMessage.contact_history_revision_idhistory_revision_id ←(0..many) public."PollMessage".contact_history_revision_id

 

- @@ -3808,7 +3808,7 @@ td.section { - + @@ -3825,8 +3825,8 @@ td.section {
+ public."Cursor" [table]
Cursor_pkey"Cursor_pkey" [primary key]

 

- @@ -3864,7 +3864,7 @@ td.section { - + @@ -3907,15 +3907,15 @@ td.section { - +
- public.DelegationSignerData [table] + + public."DelegationSignerData" [table]
DelegationSignerData_pkey"DelegationSignerData_pkey" [primary key]
domain_repo_id (0..many)→ public.Domain.repo_iddomain_repo_id (0..many)→ public."Domain".repo_id

 

- @@ -3948,7 +3948,7 @@ td.section { - + @@ -3960,8 +3960,8 @@ td.section {
- public.DnsRefreshRequest [table] + + public."DnsRefreshRequest" [table]
DnsRefreshRequest_pkey"DnsRefreshRequest_pkey" [primary key]

 

- @@ -4079,7 +4079,7 @@ td.section { - + @@ -4097,60 +4097,12 @@ td.section { - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -4162,7 +4114,7 @@ td.section { - + @@ -4174,103 +4126,19 @@ td.section { - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -4282,7 +4150,19 @@ td.section { - + + + + + + + + + + + + + @@ -4294,7 +4174,7 @@ td.section { - + @@ -4306,31 +4186,31 @@ td.section { - + - + - + - + - + @@ -4342,15 +4222,135 @@ td.section { - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
- public.Domain [table] + + public."Domain" [table]
Domain_pkey"Domain_pkey" [primary key]
fk_domain_current_package_tokenfktr24j9v14ph2mfuw2gsmt12kq [foreign key, with no action]
current_package_token (0..many)→ public.AllocationToken.token
fk_domain_transfer_billing_cancellation_id[foreign key, with no action]
transfer_billing_cancellation_id (0..many)→ public.BillingCancellation.billing_cancellation_id
fk_domain_transfer_billing_event_id[foreign key, with no action]
transfer_billing_event_id (0..many)→ public.BillingEvent.billing_event_id
fk_domain_billing_recurrence_id[foreign key, with no action]
billing_recurrence_id (0..many)→ public.BillingRecurrence.billing_recurrence_id
fk_domain_transfer_billing_recurrence_id[foreign key, with no action]
transfer_billing_recurrence_id (0..many)→ public.BillingRecurrence.billing_recurrence_idrepo_id ←(0..many) public."DelegationSignerData".domain_repo_id
admin_contact (0..many)→ public.Contact.repo_idadmin_contact (0..many)→ public."Contact".repo_id
billing_contact (0..many)→ public.Contact.repo_idbilling_contact (0..many)→ public."Contact".repo_id
fk_domain_registrant_contactfk_domain_billing_recurrence_id [foreign key, with no action]
registrant_contact (0..many)→ public.Contact.repo_id
fk_domain_tech_contact[foreign key, with no action]
tech_contact (0..many)→ public.Contact.repo_id
fktr24j9v14ph2mfuw2gsmt12kq[foreign key, with no action]
repo_id ←(0..many) public.DelegationSignerData.domain_repo_id
fk_domain_history_domain_repo_id[foreign key, with no action]
repo_id ←(0..many) public.DomainHistory.domain_repo_id
fkfmi7bdink53swivs390m2btxg[foreign key, with no action]
repo_id ←(0..many) public.DomainHost.domain_repo_id
fk_grace_period_domain_repo_id[foreign key, with no action]
repo_id ←(0..many) public.GracePeriod.domain_repo_id
fk_host_superordinate_domain[foreign key, with no action]
repo_id ←(0..many) public.Host.superordinate_domain
fk_poll_message_domain_repo_id[foreign key, with no action]
repo_id ←(0..many) public.PollMessage.domain_repo_idbilling_recurrence_id (0..many)→ public."BillingRecurrence".billing_recurrence_id
creation_registrar_id (0..many)→ public.Registrar.registrar_idcreation_registrar_id (0..many)→ public."Registrar".registrar_id
fk_domain_current_package_token[foreign key, with no action]
current_package_token (0..many)→ public."AllocationToken".token
current_sponsor_registrar_id (0..many)→ public.Registrar.registrar_idcurrent_sponsor_registrar_id (0..many)→ public."Registrar".registrar_id
last_epp_update_registrar_id (0..many)→ public.Registrar.registrar_idlast_epp_update_registrar_id (0..many)→ public."Registrar".registrar_id
fk_domain_transfer_gaining_registrar_idfk_domain_registrant_contact [foreign key, with no action]
transfer_gaining_registrar_id (0..many)→ public.Registrar.registrar_idregistrant_contact (0..many)→ public."Contact".repo_id
fk_domain_transfer_losing_registrar_idfk_domain_tech_contact [foreign key, with no action]
transfer_losing_registrar_id (0..many)→ public.Registrar.registrar_idtech_contact (0..many)→ public."Contact".repo_id
tld (0..many)→ public.Tld.tld_nametld (0..many)→ public."Tld".tld_name
fk_domain_transfer_billing_cancellation_id[foreign key, with no action]
transfer_billing_cancellation_id (0..many)→ public."BillingCancellation".billing_cancellation_id
fk_domain_transfer_billing_event_id[foreign key, with no action]
transfer_billing_event_id (0..many)→ public."BillingEvent".billing_event_id
fk_domain_transfer_billing_recurrence_id[foreign key, with no action]
transfer_billing_recurrence_id (0..many)→ public."BillingRecurrence".billing_recurrence_id
fk_domain_transfer_gaining_registrar_id[foreign key, with no action]
transfer_gaining_registrar_id (0..many)→ public."Registrar".registrar_id
fk_domain_transfer_losing_registrar_id[foreign key, with no action]
transfer_losing_registrar_id (0..many)→ public."Registrar".registrar_id
fk_domain_history_domain_repo_id[foreign key, with no action]
repo_id ←(0..many) public."DomainHistory".domain_repo_id
fkfmi7bdink53swivs390m2btxg[foreign key, with no action]
repo_id ←(0..many) public."DomainHost".domain_repo_id
fk_grace_period_domain_repo_id[foreign key, with no action]
repo_id ←(0..many) public."GracePeriod".domain_repo_id
fk_host_superordinate_domain[foreign key, with no action]
repo_id ←(0..many) public."Host".superordinate_domain
fk_poll_message_domain_repo_id[foreign key, with no action]
repo_id ←(0..many) public."PollMessage".domain_repo_id

 

- @@ -4378,7 +4378,7 @@ td.section { - + @@ -4401,20 +4401,20 @@ td.section { - + - +
- public.DomainDsDataHistory [table] + + public."DomainDsDataHistory" [table]
DomainDsDataHistory_pkey"DomainDsDataHistory_pkey" [primary key]
domain_repo_id (0..many)→ public.DomainHistory.domain_repo_iddomain_repo_id (0..many)→ public."DomainHistory".domain_repo_id
domain_history_revision_id (0..many)→ public.DomainHistory.history_revision_iddomain_history_revision_id (0..many)→ public."DomainHistory".history_revision_id

 

- @@ -4462,7 +4462,7 @@ td.section { - + @@ -4490,7 +4490,7 @@ td.section { - + @@ -4502,7 +4502,7 @@ td.section { - + @@ -4514,7 +4514,7 @@ td.section { - + @@ -4526,12 +4526,12 @@ td.section { - + - + @@ -4543,12 +4543,12 @@ td.section { - + - + @@ -4560,12 +4560,12 @@ td.section { - + - + @@ -4577,12 +4577,12 @@ td.section { - + - + @@ -4594,12 +4594,12 @@ td.section { - + - + @@ -4611,12 +4611,12 @@ td.section { - + - + @@ -4628,12 +4628,12 @@ td.section { - + - + @@ -4645,12 +4645,12 @@ td.section { - + - + @@ -4662,20 +4662,20 @@ td.section { - + - +
- public.DomainHistory [table] + + public."DomainHistory" [table]
DomainHistory_pkey"DomainHistory_pkey" [primary key]
current_package_token (0..many)→ public.AllocationToken.tokencurrent_package_token (0..many)→ public."AllocationToken".token
domain_repo_id (0..many)→ public.Domain.repo_iddomain_repo_id (0..many)→ public."Domain".repo_id
history_registrar_id (0..many)→ public.Registrar.registrar_idhistory_registrar_id (0..many)→ public."Registrar".registrar_id
domain_repo_id ←(0..many) public.BillingCancellation.domain_repo_iddomain_repo_id ←(0..many) public."BillingCancellation".domain_repo_id
history_revision_id ←(0..many) public.BillingCancellation.domain_history_revision_idhistory_revision_id ←(0..many) public."BillingCancellation".domain_history_revision_id
domain_repo_id ←(0..many) public.BillingEvent.domain_repo_iddomain_repo_id ←(0..many) public."BillingEvent".domain_repo_id
history_revision_id ←(0..many) public.BillingEvent.domain_history_revision_idhistory_revision_id ←(0..many) public."BillingEvent".domain_history_revision_id
domain_repo_id ←(0..many) public.BillingEvent.domain_repo_iddomain_repo_id ←(0..many) public."BillingEvent".domain_repo_id
history_revision_id ←(0..many) public.BillingEvent.recurrence_history_revision_idhistory_revision_id ←(0..many) public."BillingEvent".recurrence_history_revision_id
domain_repo_id ←(0..many) public.BillingRecurrence.domain_repo_iddomain_repo_id ←(0..many) public."BillingRecurrence".domain_repo_id
history_revision_id ←(0..many) public.BillingRecurrence.domain_history_revision_idhistory_revision_id ←(0..many) public."BillingRecurrence".domain_history_revision_id
domain_repo_id ←(0..many) public.DomainDsDataHistory.domain_repo_iddomain_repo_id ←(0..many) public."DomainDsDataHistory".domain_repo_id
history_revision_id ←(0..many) public.DomainDsDataHistory.domain_history_revision_idhistory_revision_id ←(0..many) public."DomainDsDataHistory".domain_history_revision_id
domain_repo_id ←(0..many) public.DomainHistoryHost.domain_history_domain_repo_iddomain_repo_id ←(0..many) public."DomainHistoryHost".domain_history_domain_repo_id
history_revision_id ←(0..many) public.DomainHistoryHost.domain_history_history_revision_idhistory_revision_id ←(0..many) public."DomainHistoryHost".domain_history_history_revision_id
domain_repo_id ←(0..many) public.DomainTransactionRecord.domain_repo_iddomain_repo_id ←(0..many) public."DomainTransactionRecord".domain_repo_id
history_revision_id ←(0..many) public.DomainTransactionRecord.history_revision_idhistory_revision_id ←(0..many) public."DomainTransactionRecord".history_revision_id
domain_repo_id ←(0..many) public.GracePeriodHistory.domain_repo_iddomain_repo_id ←(0..many) public."GracePeriodHistory".domain_repo_id
history_revision_id ←(0..many) public.GracePeriodHistory.domain_history_revision_idhistory_revision_id ←(0..many) public."GracePeriodHistory".domain_history_revision_id
domain_repo_id ←(0..many) public.PollMessage.domain_repo_iddomain_repo_id ←(0..many) public."PollMessage".domain_repo_id
history_revision_id ←(0..many) public.PollMessage.domain_history_revision_idhistory_revision_id ←(0..many) public."PollMessage".domain_history_revision_id

 

- @@ -4708,20 +4708,20 @@ td.section { - + - +
- public.DomainHistoryHost [table] + + public."DomainHistoryHost" [table]
domain_history_domain_repo_id (0..many)→ public.DomainHistory.domain_repo_iddomain_history_domain_repo_id (0..many)→ public."DomainHistory".domain_repo_id
domain_history_history_revision_id (0..many)→ public.DomainHistory.history_revision_iddomain_history_history_revision_id (0..many)→ public."DomainHistory".history_revision_id

 

- @@ -4749,7 +4749,7 @@ td.section { - + @@ -4761,15 +4761,15 @@ td.section { - +
- public.DomainHost [table] + + public."DomainHost" [table]
domain_repo_id (0..many)→ public.Domain.repo_iddomain_repo_id (0..many)→ public."Domain".repo_id
host_repo_id (0..many)→ public.Host.repo_idhost_repo_id (0..many)→ public."Host".repo_id

 

- @@ -4807,7 +4807,7 @@ td.section { - + @@ -4830,7 +4830,7 @@ td.section { - + @@ -4842,20 +4842,20 @@ td.section { - + - +
- public.DomainTransactionRecord [table] + + public."DomainTransactionRecord" [table]
DomainTransactionRecord_pkey"DomainTransactionRecord_pkey" [primary key]
tld (0..many)→ public.Tld.tld_nametld (0..many)→ public."Tld".tld_name
domain_repo_id (0..many)→ public.DomainHistory.domain_repo_iddomain_repo_id (0..many)→ public."DomainHistory".domain_repo_id
history_revision_id (0..many)→ public.DomainHistory.history_revision_idhistory_revision_id (0..many)→ public."DomainHistory".history_revision_id

 

- @@ -4873,7 +4873,7 @@ td.section { - + @@ -4885,8 +4885,8 @@ td.section {
- public.FeatureFlag [table] + + public."FeatureFlag" [table]
FeatureFlag_pkey"FeatureFlag_pkey" [primary key]

 

- @@ -4924,7 +4924,7 @@ td.section { - + @@ -4947,7 +4947,7 @@ td.section { - + @@ -4959,7 +4959,7 @@ td.section { - + @@ -4971,7 +4971,7 @@ td.section { - + @@ -4983,15 +4983,15 @@ td.section { - +
- public.GracePeriod [table] + + public."GracePeriod" [table]
GracePeriod_pkey"GracePeriod_pkey" [primary key]
billing_event_id (0..many)→ public.BillingEvent.billing_event_idbilling_event_id (0..many)→ public."BillingEvent".billing_event_id
billing_recurrence_id (0..many)→ public.BillingRecurrence.billing_recurrence_idbilling_recurrence_id (0..many)→ public."BillingRecurrence".billing_recurrence_id
domain_repo_id (0..many)→ public.Domain.repo_iddomain_repo_id (0..many)→ public."Domain".repo_id
registrar_id (0..many)→ public.Registrar.registrar_idregistrar_id (0..many)→ public."Registrar".registrar_id

 

- @@ -5019,7 +5019,7 @@ td.section { - + @@ -5042,20 +5042,20 @@ td.section { - + - +
- public.GracePeriodHistory [table] + + public."GracePeriodHistory" [table]
GracePeriodHistory_pkey"GracePeriodHistory_pkey" [primary key]
domain_repo_id (0..many)→ public.DomainHistory.domain_repo_iddomain_repo_id (0..many)→ public."DomainHistory".domain_repo_id
domain_history_revision_id (0..many)→ public.DomainHistory.history_revision_iddomain_history_revision_id (0..many)→ public."DomainHistory".history_revision_id

 

- @@ -5113,7 +5113,7 @@ td.section { - + @@ -5130,49 +5130,13 @@ td.section { - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -5184,7 +5148,7 @@ td.section { - + @@ -5196,7 +5160,7 @@ td.section { - + @@ -5208,15 +5172,51 @@ td.section { - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
- public.Host [table] + + public."Host" [table]
Host_pkey"Host_pkey" [primary key]
fk_host_superordinate_domain[foreign key, with no action]
superordinate_domain (0..many)→ public.Domain.repo_id
fk_domainhost_host_valid [foreign key, with no action]
repo_id ←(0..many) public.DomainHost.host_repo_id
fk_hosthistory_host[foreign key, with no action]
repo_id ←(0..many) public.HostHistory.host_repo_id
fk_poll_message_host_repo_id[foreign key, with no action]
repo_id ←(0..many) public.PollMessage.host_repo_idrepo_id ←(0..many) public."DomainHost".host_repo_id
creation_registrar_id (0..many)→ public.Registrar.registrar_idcreation_registrar_id (0..many)→ public."Registrar".registrar_id
current_sponsor_registrar_id (0..many)→ public.Registrar.registrar_idcurrent_sponsor_registrar_id (0..many)→ public."Registrar".registrar_id
last_epp_update_registrar_id (0..many)→ public.Registrar.registrar_idlast_epp_update_registrar_id (0..many)→ public."Registrar".registrar_id
fk_host_superordinate_domain[foreign key, with no action]
superordinate_domain (0..many)→ public."Domain".repo_id
fk_hosthistory_host[foreign key, with no action]
repo_id ←(0..many) public."HostHistory".host_repo_id
fk_poll_message_host_repo_id[foreign key, with no action]
repo_id ←(0..many) public."PollMessage".host_repo_id

 

- @@ -5264,7 +5264,7 @@ td.section { - + @@ -5287,24 +5287,24 @@ td.section { - + - + - + - + @@ -5316,20 +5316,20 @@ td.section { - + - +
- public.HostHistory [table] + + public."HostHistory" [table]
HostHistory_pkey"HostHistory_pkey" [primary key]
fk_hosthistory_hostfk_history_registrar_id [foreign key, with no action]
host_repo_id (0..many)→ public.Host.repo_idhistory_registrar_id (0..many)→ public."Registrar".registrar_id
fk_history_registrar_idfk_hosthistory_host [foreign key, with no action]
history_registrar_id (0..many)→ public.Registrar.registrar_idhost_repo_id (0..many)→ public."Host".repo_id
host_repo_id ←(0..many) public.PollMessage.host_repo_idhost_repo_id ←(0..many) public."PollMessage".host_repo_id
history_revision_id ←(0..many) public.PollMessage.host_history_revision_idhistory_revision_id ←(0..many) public."PollMessage".host_history_revision_id

 

- @@ -5352,7 +5352,7 @@ td.section { - + @@ -5369,8 +5369,8 @@ td.section {
- public.Lock [table] + + public."Lock" [table]
Lock_pkey"Lock_pkey" [primary key]

 

- @@ -5398,7 +5398,7 @@ td.section { - + @@ -5410,8 +5410,8 @@ td.section {
- public.PackagePromotion [table] + + public."PackagePromotion" [table]
PackagePromotion_pkey"PackagePromotion_pkey" [primary key]

 

- @@ -5479,7 +5479,7 @@ td.section { - + @@ -5502,7 +5502,7 @@ td.section { - + @@ -5514,7 +5514,7 @@ td.section { - + @@ -5526,7 +5526,7 @@ td.section { - + @@ -5538,7 +5538,7 @@ td.section { - + @@ -5550,7 +5550,7 @@ td.section { - + @@ -5562,7 +5562,7 @@ td.section { - + @@ -5574,12 +5574,12 @@ td.section { - + - + @@ -5591,12 +5591,12 @@ td.section { - + - + @@ -5608,20 +5608,20 @@ td.section { - + - +
- public.PollMessage [table] + + public."PollMessage" [table]
PollMessage_pkey"PollMessage_pkey" [primary key]
contact_repo_id (0..many)→ public.Contact.repo_idcontact_repo_id (0..many)→ public."Contact".repo_id
domain_repo_id (0..many)→ public.Domain.repo_iddomain_repo_id (0..many)→ public."Domain".repo_id
host_repo_id (0..many)→ public.Host.repo_idhost_repo_id (0..many)→ public."Host".repo_id
registrar_id (0..many)→ public.Registrar.registrar_idregistrar_id (0..many)→ public."Registrar".registrar_id
transfer_response_gaining_registrar_id (0..many)→ public.Registrar.registrar_idtransfer_response_gaining_registrar_id (0..many)→ public."Registrar".registrar_id
transfer_response_losing_registrar_id (0..many)→ public.Registrar.registrar_idtransfer_response_losing_registrar_id (0..many)→ public."Registrar".registrar_id
contact_repo_id (0..many)→ public.ContactHistory.contact_repo_idcontact_repo_id (0..many)→ public."ContactHistory".contact_repo_id
contact_history_revision_id (0..many)→ public.ContactHistory.history_revision_idcontact_history_revision_id (0..many)→ public."ContactHistory".history_revision_id
domain_repo_id (0..many)→ public.DomainHistory.domain_repo_iddomain_repo_id (0..many)→ public."DomainHistory".domain_repo_id
domain_history_revision_id (0..many)→ public.DomainHistory.history_revision_iddomain_history_revision_id (0..many)→ public."DomainHistory".history_revision_id
host_repo_id (0..many)→ public.HostHistory.host_repo_idhost_repo_id (0..many)→ public."HostHistory".host_repo_id
host_history_revision_id (0..many)→ public.HostHistory.history_revision_idhost_history_revision_id (0..many)→ public."HostHistory".history_revision_id

 

- @@ -5644,7 +5644,7 @@ td.section { - + @@ -5672,15 +5672,15 @@ td.section { - +
- public.PremiumEntry [table] + + public."PremiumEntry" [table]
PremiumEntry_pkey"PremiumEntry_pkey" [primary key]
revision_id (0..many)→ public.PremiumList.revision_idrevision_id (0..many)→ public."PremiumList".revision_id

 

- @@ -5708,7 +5708,7 @@ td.section { - + @@ -5731,15 +5731,15 @@ td.section { - +
- public.PremiumList [table] + + public."PremiumList" [table]
PremiumList_pkey"PremiumList_pkey" [primary key]
revision_id ←(0..many) public.PremiumEntry.revision_idrevision_id ←(0..many) public."PremiumEntry".revision_id

 

- @@ -5767,7 +5767,7 @@ td.section { - + @@ -5789,8 +5789,8 @@ td.section {
- public.RdeRevision [table] + + public."RdeRevision" [table]
RdeRevision_pkey"RdeRevision_pkey" [primary key]

 

- @@ -5818,7 +5818,7 @@ td.section { - + @@ -5841,7 +5841,7 @@ td.section { - + @@ -5853,7 +5853,7 @@ td.section { - + @@ -5865,7 +5865,7 @@ td.section { - + @@ -5877,7 +5877,7 @@ td.section { - + @@ -5889,7 +5889,7 @@ td.section { - + @@ -5901,7 +5901,7 @@ td.section { - + @@ -5913,7 +5913,7 @@ td.section { - + @@ -5925,7 +5925,7 @@ td.section { - + @@ -5937,7 +5937,7 @@ td.section { - + @@ -5949,7 +5949,7 @@ td.section { - + @@ -5961,7 +5961,7 @@ td.section { - + @@ -5973,7 +5973,7 @@ td.section { - + @@ -5985,7 +5985,7 @@ td.section { - + @@ -5997,7 +5997,7 @@ td.section { - + @@ -6009,7 +6009,7 @@ td.section { - + @@ -6021,7 +6021,7 @@ td.section { - + @@ -6033,7 +6033,7 @@ td.section { - + @@ -6045,7 +6045,7 @@ td.section { - + @@ -6057,7 +6057,7 @@ td.section { - + @@ -6069,7 +6069,7 @@ td.section { - + @@ -6081,7 +6081,7 @@ td.section { - + @@ -6093,7 +6093,7 @@ td.section { - + @@ -6105,7 +6105,7 @@ td.section { - + @@ -6117,7 +6117,7 @@ td.section { - + @@ -6129,15 +6129,15 @@ td.section { - +
- public.Registrar [table] + + public."Registrar" [table]
Registrar_pkey"Registrar_pkey" [primary key]
registrar_id ←(0..many) public.BillingCancellation.registrar_idregistrar_id ←(0..many) public."BillingCancellation".registrar_id
registrar_id ←(0..many) public.BillingEvent.registrar_idregistrar_id ←(0..many) public."BillingEvent".registrar_id
registrar_id ←(0..many) public.BillingRecurrence.registrar_idregistrar_id ←(0..many) public."BillingRecurrence".registrar_id
registrar_id ←(0..many) public.Contact.creation_registrar_idregistrar_id ←(0..many) public."Contact".creation_registrar_id
registrar_id ←(0..many) public.Contact.current_sponsor_registrar_idregistrar_id ←(0..many) public."Contact".current_sponsor_registrar_id
registrar_id ←(0..many) public.Contact.last_epp_update_registrar_idregistrar_id ←(0..many) public."Contact".last_epp_update_registrar_id
registrar_id ←(0..many) public.Contact.transfer_gaining_registrar_idregistrar_id ←(0..many) public."Contact".transfer_gaining_registrar_id
registrar_id ←(0..many) public.Contact.transfer_losing_registrar_idregistrar_id ←(0..many) public."Contact".transfer_losing_registrar_id
registrar_id ←(0..many) public.ContactHistory.history_registrar_idregistrar_id ←(0..many) public."ContactHistory".history_registrar_id
registrar_id ←(0..many) public.Domain.creation_registrar_idregistrar_id ←(0..many) public."Domain".creation_registrar_id
registrar_id ←(0..many) public.Domain.current_sponsor_registrar_idregistrar_id ←(0..many) public."Domain".current_sponsor_registrar_id
registrar_id ←(0..many) public.Domain.last_epp_update_registrar_idregistrar_id ←(0..many) public."Domain".last_epp_update_registrar_id
registrar_id ←(0..many) public.Domain.transfer_gaining_registrar_idregistrar_id ←(0..many) public."Domain".transfer_gaining_registrar_id
registrar_id ←(0..many) public.Domain.transfer_losing_registrar_idregistrar_id ←(0..many) public."Domain".transfer_losing_registrar_id
registrar_id ←(0..many) public.DomainHistory.history_registrar_idregistrar_id ←(0..many) public."DomainHistory".history_registrar_id
registrar_id ←(0..many) public.GracePeriod.registrar_idregistrar_id ←(0..many) public."GracePeriod".registrar_id
registrar_id ←(0..many) public.Host.creation_registrar_idregistrar_id ←(0..many) public."Host".creation_registrar_id
registrar_id ←(0..many) public.Host.current_sponsor_registrar_idregistrar_id ←(0..many) public."Host".current_sponsor_registrar_id
registrar_id ←(0..many) public.Host.last_epp_update_registrar_idregistrar_id ←(0..many) public."Host".last_epp_update_registrar_id
registrar_id ←(0..many) public.HostHistory.history_registrar_idregistrar_id ←(0..many) public."HostHistory".history_registrar_id
registrar_id ←(0..many) public.PollMessage.registrar_idregistrar_id ←(0..many) public."PollMessage".registrar_id
registrar_id ←(0..many) public.PollMessage.transfer_response_gaining_registrar_idregistrar_id ←(0..many) public."PollMessage".transfer_response_gaining_registrar_id
registrar_id ←(0..many) public.PollMessage.transfer_response_losing_registrar_idregistrar_id ←(0..many) public."PollMessage".transfer_response_losing_registrar_id
registrar_id ←(0..many) public.RegistrarPoc.registrar_idregistrar_id ←(0..many) public."RegistrarPoc".registrar_id
registrar_id ←(0..many) public.RegistrarUpdateHistory.registrar_idregistrar_id ←(0..many) public."RegistrarUpdateHistory".registrar_id

 

- @@ -6165,7 +6165,7 @@ td.section { - + @@ -6193,7 +6193,7 @@ td.section { - + @@ -6205,20 +6205,20 @@ td.section { - + - +
- public.RegistrarPoc [table] + + public."RegistrarPoc" [table]
RegistrarPoc_pkey"RegistrarPoc_pkey" [primary key]
registrar_id (0..many)→ public.Registrar.registrar_idregistrar_id (0..many)→ public."Registrar".registrar_id
email_address ←(0..many) public.RegistrarPocUpdateHistory.email_addressemail_address ←(0..many) public."RegistrarPocUpdateHistory".email_address
registrar_id ←(0..many) public.RegistrarPocUpdateHistory.registrar_idregistrar_id ←(0..many) public."RegistrarPocUpdateHistory".registrar_id

 

- @@ -6251,7 +6251,7 @@ td.section { - + @@ -6286,20 +6286,20 @@ td.section { - + - +
- public.RegistrarPocUpdateHistory [table] + + public."RegistrarPocUpdateHistory" [table]
RegistrarPocUpdateHistory_pkey"RegistrarPocUpdateHistory_pkey" [primary key]
email_address (0..many)→ public.RegistrarPoc.email_addressemail_address (0..many)→ public."RegistrarPoc".email_address
registrar_id (0..many)→ public.RegistrarPoc.registrar_idregistrar_id (0..many)→ public."RegistrarPoc".registrar_id

 

- @@ -6327,7 +6327,7 @@ td.section { - + @@ -6362,15 +6362,15 @@ td.section { - +
- public.RegistrarUpdateHistory [table] + + public."RegistrarUpdateHistory" [table]
RegistrarUpdateHistory_pkey"RegistrarUpdateHistory_pkey" [primary key]
registrar_id (0..many)→ public.Registrar.registrar_idregistrar_id (0..many)→ public."Registrar".registrar_id

 

- @@ -6413,7 +6413,7 @@ td.section { - + @@ -6443,8 +6443,8 @@ td.section {
- public.RegistryLock [table] + + public."RegistryLock" [table]
RegistryLock_pkey"RegistryLock_pkey" [primary key]

 

- @@ -6467,7 +6467,7 @@ td.section { - + @@ -6495,15 +6495,15 @@ td.section { - +
- public.ReservedEntry [table] + + public."ReservedEntry" [table]
ReservedEntry_pkey"ReservedEntry_pkey" [primary key]
revision_id (0..many)→ public.ReservedList.revision_idrevision_id (0..many)→ public."ReservedList".revision_id

 

- @@ -6531,7 +6531,7 @@ td.section { - + @@ -6554,15 +6554,15 @@ td.section { - +
- public.ReservedList [table] + + public."ReservedList" [table]
ReservedList_pkey"ReservedList_pkey" [primary key]
revision_id ←(0..many) public.ReservedEntry.revision_idrevision_id ←(0..many) public."ReservedEntry".revision_id

 

- @@ -6580,7 +6580,7 @@ td.section { - + @@ -6592,8 +6592,8 @@ td.section {
- public.ServerSecret [table] + + public."ServerSecret" [table]
ServerSecret_pkey"ServerSecret_pkey" [primary key]

 

- @@ -6616,7 +6616,7 @@ td.section { - + @@ -6644,15 +6644,15 @@ td.section { - +
- public.SignedMarkRevocationEntry [table] + + public."SignedMarkRevocationEntry" [table]
SignedMarkRevocationEntry_pkey"SignedMarkRevocationEntry_pkey" [primary key]
revision_id (0..many)→ public.SignedMarkRevocationList.revision_idrevision_id (0..many)→ public."SignedMarkRevocationList".revision_id

 

- @@ -6675,7 +6675,7 @@ td.section { - + @@ -6698,15 +6698,15 @@ td.section { - +
- public.SignedMarkRevocationList [table] + + public."SignedMarkRevocationList" [table]
SignedMarkRevocationList_pkey"SignedMarkRevocationList_pkey" [primary key]
revision_id ←(0..many) public.SignedMarkRevocationEntry.revision_idrevision_id ←(0..many) public."SignedMarkRevocationEntry".revision_id

 

- @@ -6744,7 +6744,7 @@ td.section { - + @@ -6756,8 +6756,8 @@ td.section {
- public.Spec11ThreatMatch [table] + + public."Spec11ThreatMatch" [table]
SafeBrowsingThreat_pkey"SafeBrowsingThreat_pkey" [primary key]

 

- @@ -6775,7 +6775,7 @@ td.section { - + @@ -6798,7 +6798,7 @@ td.section { - + @@ -6810,15 +6810,15 @@ td.section { - +
- public.Tld [table] + + public."Tld" [table]
Tld_pkey"Tld_pkey" [primary key]
tld_name ←(0..many) public.Domain.tldtld_name ←(0..many) public."Domain".tld
tld_name ←(0..many) public.DomainTransactionRecord.tldtld_name ←(0..many) public."DomainTransactionRecord".tld

 

- @@ -6836,7 +6836,7 @@ td.section { - + @@ -6848,7 +6848,7 @@ td.section {
- public.TmchCrl [table] + + public."TmchCrl" [table]
TmchCrl_pkey"TmchCrl_pkey" [primary key]

 

- @@ -6877,7 +6877,7 @@ td.section { - + @@ -6900,7 +6900,7 @@ td.section { - + @@ -6912,7 +6912,7 @@ td.section { - + @@ -6924,7 +6924,7 @@ td.section { - + @@ -6936,7 +6936,7 @@ td.section { - + @@ -6948,15 +6948,15 @@ td.section { - +
+ public."User" [table]
User_pkey"User_pkey" [primary key]
email_address ←(0..many) public.ConsoleEppActionHistory.history_acting_useremail_address ←(0..many) public."ConsoleEppActionHistory".history_acting_user
email_address ←(0..many) public.RegistrarPocUpdateHistory.history_acting_useremail_address ←(0..many) public."RegistrarPocUpdateHistory".history_acting_user
email_address ←(0..many) public.RegistrarUpdateHistory.history_acting_useremail_address ←(0..many) public."RegistrarUpdateHistory".history_acting_user
email_address ←(0..many) public.UserUpdateHistory.email_addressemail_address ←(0..many) public."UserUpdateHistory".email_address
email_address ←(0..many) public.UserUpdateHistory.history_acting_useremail_address ←(0..many) public."UserUpdateHistory".history_acting_user

 

- @@ -6984,7 +6984,7 @@ td.section { - + diff --git a/db/src/main/resources/sql/er_diagram/full_er_diagram.html b/db/src/main/resources/sql/er_diagram/full_er_diagram.html index c912c19a0..d857aba49 100644 --- a/db/src/main/resources/sql/er_diagram/full_er_diagram.html +++ b/db/src/main/resources/sql/er_diagram/full_er_diagram.html @@ -257,11 +257,11 @@ td.section { - + - + @@ -277,18 +277,18 @@ td.section { SchemaCrawler_Diagram - generated by - SchemaCrawler 16.10.1 - generated on - 2024-06-05 18:34:52.170849945 - + generated by + SchemaCrawler 16.21.2 + generated on + 2024-06-20 20:07:00 + allocationtoken_a08ccbef - - public.AllocationToken - + + public."AllocationToken" + [table] token @@ -322,7 +322,7 @@ td.section { text token_status_transitions - "hstore" + hstore token_type text @@ -350,9 +350,9 @@ td.section { billingevent_a57d1815 - - public.BillingEvent - + + public."BillingEvent" + [table] billing_event_id @@ -421,9 +421,9 @@ td.section { domainhistory_a54cc226 - - public.DomainHistory - + + public."DomainHistory" + [table] history_revision_id @@ -632,13 +632,13 @@ td.section { billingevent_a57d1815:w->domainhistory_a54cc226:e - + - - - - - + + + + + fk_billing_event_domain_history @@ -684,9 +684,9 @@ td.section { billingrecurrence_5fa2cb01 - - public.BillingRecurrence - + + public."BillingRecurrence" + [table] billing_recurrence_id @@ -736,7 +736,7 @@ td.section { billingevent_a57d1815:w->billingrecurrence_5fa2cb01:e - + @@ -749,9 +749,9 @@ td.section { registrar_6e1503e3 - - public.Registrar - + + public."Registrar" + [table] registrar_id @@ -761,7 +761,7 @@ td.section { _text billing_account_map - "hstore" + hstore block_premium_names bool not null @@ -910,9 +910,9 @@ td.section { domain_6c51cffa - - public.Domain - + + public."Domain" + [table] repo_id @@ -1105,56 +1105,56 @@ td.section { billingcancellation_6eedf614 - - public.BillingCancellation - - [table] - billing_cancellation_id + + public."BillingCancellation" + + [table] + billing_cancellation_id - int8 not null - registrar_id + int8 not null + registrar_id - text not null - domain_history_revision_id + text not null + domain_history_revision_id - int8 not null - domain_repo_id + int8 not null + domain_repo_id - text not null - event_time + text not null + event_time - timestamptz not null - flags + timestamptz not null + flags - _text - reason + _text + reason - text not null - domain_name + text not null + domain_name - text not null - billing_time + text not null + billing_time - timestamptz - billing_event_id + timestamptz + billing_event_id - int8 - billing_recurrence_id + int8 + billing_recurrence_id - int8 - + int8 + domain_6c51cffa:w->billingcancellation_6eedf614:e - + - - - - + + + + fk_domain_transfer_billing_cancellation_id @@ -1187,9 +1187,9 @@ td.section { contact_8de8cb16 - - public.Contact - + + public."Contact" + [table] repo_id @@ -1491,9 +1491,9 @@ td.section { tld_f1fa57e2 - - public.Tld - + + public."Tld" + [table] tld_name @@ -1536,7 +1536,7 @@ td.section { text eap_fee_schedule - "hstore" not null + hstore not null escrow_enabled bool not null @@ -1569,7 +1569,7 @@ td.section { text renew_billing_cost_transitions - "hstore" not null + hstore not null renew_grace_period_length interval not null @@ -1593,7 +1593,7 @@ td.section { text tld_state_transitions - "hstore" not null + hstore not null tld_type text not null @@ -1626,7 +1626,7 @@ td.section { timestamptz create_billing_cost_transitions - "hstore" not null + hstore not null @@ -1685,9 +1685,9 @@ td.section { billingcancellation_6eedf614:w->billingevent_a57d1815:e - - - + + + @@ -1698,9 +1698,9 @@ td.section { billingcancellation_6eedf614:w->domainhistory_a54cc226:e - - - + + + @@ -1711,9 +1711,9 @@ td.section { billingcancellation_6eedf614:w->domainhistory_a54cc226:e - - - + + + @@ -1724,12 +1724,12 @@ td.section { billingcancellation_6eedf614:w->billingrecurrence_5fa2cb01:e - - - + + + - + fk_billing_cancellation_billing_recurrence_id @@ -1737,9 +1737,9 @@ td.section { billingcancellation_6eedf614:w->registrar_6e1503e3:e - - - + + + @@ -1750,40 +1750,40 @@ td.section { graceperiod_cd3b2e8f - - public.GracePeriod - - [table] - grace_period_id + + public."GracePeriod" + + [table] + grace_period_id - int8 not null - billing_event_id + int8 not null + billing_event_id - int8 - billing_recurrence_id + int8 + billing_recurrence_id - int8 - registrar_id + int8 + registrar_id - text not null - domain_repo_id + text not null + domain_repo_id - text not null - expiration_time + text not null + expiration_time - timestamptz not null - type + timestamptz not null + type - text not null - + text not null + graceperiod_cd3b2e8f:w->billingevent_a57d1815:e - - - + + + @@ -1794,9 +1794,9 @@ td.section { graceperiod_cd3b2e8f:w->domain_6c51cffa:e - - - + + + @@ -1807,9 +1807,9 @@ td.section { graceperiod_cd3b2e8f:w->billingrecurrence_5fa2cb01:e - - - + + + @@ -1820,9 +1820,9 @@ td.section { graceperiod_cd3b2e8f:w->registrar_6e1503e3:e - - - + + + @@ -1872,130 +1872,130 @@ td.section { bsadomainrefresh_c8f4c45d - - public.BsaDomainRefresh - - [table] - job_id + + public."BsaDomainRefresh" + + [table] + job_id - bigserial not null + bigserial not null - auto-incremented - creation_time + auto-incremented + creation_time - timestamptz not null - stage + timestamptz not null + stage - text not null - update_timestamp + text not null + update_timestamp - timestamptz - + timestamptz + bsadownload_98d031ce - - public.BsaDownload - - [table] - job_id + + public."BsaDownload" + + [table] + job_id - bigserial not null + bigserial not null - auto-incremented - block_list_checksums + auto-incremented + block_list_checksums - text not null - creation_time + text not null + creation_time - timestamptz not null - stage + timestamptz not null + stage - text not null - update_timestamp + text not null + update_timestamp - timestamptz - + timestamptz + bsalabel_2755e1da - - public.BsaLabel - - [table] - label + + public."BsaLabel" + + [table] + label - text not null - creation_time + text not null + creation_time - timestamptz not null - + timestamptz not null + bsaunblockabledomain_b739a38 - - public.BsaUnblockableDomain - - [table] - label + + public."BsaUnblockableDomain" + + [table] + label - text not null - tld + text not null + tld - text not null - creation_time + text not null + creation_time - timestamptz not null - reason + timestamptz not null + reason - text not null - + text not null + bsaunblockabledomain_b739a38:w->bsalabel_2755e1da:e - - - - - - - + + + + + + + fkbsaunblockabledomainlabel claimsentry_105da9f1 - - public.ClaimsEntry - - [table] - revision_id + + public."ClaimsEntry" + + [table] + revision_id - int8 not null - claim_key + int8 not null + claim_key - text not null - domain_label + text not null + domain_label - text not null - + text not null + claimslist_3d49bc2b - - public.ClaimsList - + + public."ClaimsList" + [table] revision_id @@ -2014,9 +2014,9 @@ td.section { claimsentry_105da9f1:w->claimslist_3d49bc2b:e - - - + + + @@ -2027,49 +2027,49 @@ td.section { consoleeppactionhistory_bcc2a2c6 - - public.ConsoleEppActionHistory - - [table] - history_revision_id + + public."ConsoleEppActionHistory" + + [table] + history_revision_id - int8 not null - history_modification_time + int8 not null + history_modification_time - timestamptz not null - history_method + timestamptz not null + history_method - text not null - history_request_body + text not null + history_request_body - text - history_type + text + history_type - text not null - history_url + text not null + history_url - text not null - history_entry_class + text not null + history_entry_class - text not null - repo_id + text not null + repo_id - text not null - revision_id + text not null + revision_id - int8 not null - history_acting_user + int8 not null + history_acting_user - text not null - + text not null + user_f2216f01 - + public."User" - + [table] id @@ -2093,7 +2093,7 @@ td.section { bool not null registrar_roles - "hstore" not null + hstore not null update_timestamp timestamptz @@ -2106,12 +2106,12 @@ td.section { consoleeppactionhistory_bcc2a2c6:w->user_f2216f01:e - - - - + + + + - + fkb686b9os2nsjpv930npa4r3b4 @@ -2184,9 +2184,9 @@ td.section { contacthistory_d2964f8a - - public.ContactHistory - + + public."ContactHistory" + [table] history_revision_id @@ -2427,9 +2427,9 @@ td.section { pollmessage_614a523e - - public.PollMessage - + + public."PollMessage" + [table] type @@ -2596,9 +2596,9 @@ td.section { host_f21b78de - - public.Host - + + public."Host" + [table] repo_id @@ -2667,9 +2667,9 @@ td.section { hosthistory_56210c2 - - public.HostHistory - + + public."HostHistory" + [table] history_revision_id @@ -2820,9 +2820,9 @@ td.section { cursor_6af40e8c - + public."Cursor" - + [table] "scope" @@ -2842,34 +2842,34 @@ td.section { delegationsignerdata_e542a872 - - public.DelegationSignerData - - [table] - domain_repo_id + + public."DelegationSignerData" + + [table] + domain_repo_id - text not null - key_tag + text not null + key_tag - int4 not null - algorithm + int4 not null + algorithm - int4 not null - digest + int4 not null + digest - bytea not null - digest_type + bytea not null + digest_type - int4 not null - + int4 not null + delegationsignerdata_e542a872:w->domain_6c51cffa:e - - - + + + @@ -2880,55 +2880,55 @@ td.section { dnsrefreshrequest_4e6affb3 - - public.DnsRefreshRequest - - [table] - id + + public."DnsRefreshRequest" + + [table] + id - bigserial not null + bigserial not null - auto-incremented - name + auto-incremented + name - text not null - request_time + text not null + request_time - timestamptz not null - tld + timestamptz not null + tld - text not null - type + text not null + type - text not null - last_process_time + text not null + last_process_time - timestamptz not null - + timestamptz not null + domainhost_1ea127c2 - - public.DomainHost - - [table] - domain_repo_id + + public."DomainHost" + + [table] + domain_repo_id - text not null - host_repo_id + text not null + host_repo_id - text - + text + domainhost_1ea127c2:w->domain_6c51cffa:e - - - + + + @@ -2939,9 +2939,9 @@ td.section { domainhost_1ea127c2:w->host_f21b78de:e - - - + + + @@ -3004,40 +3004,40 @@ td.section { domaindsdatahistory_995b060d - - public.DomainDsDataHistory - - [table] - ds_data_history_revision_id + + public."DomainDsDataHistory" + + [table] + ds_data_history_revision_id - int8 not null - algorithm + int8 not null + algorithm - int4 not null - digest + int4 not null + digest - bytea not null - digest_type + bytea not null + digest_type - int4 not null - domain_history_revision_id + int4 not null + domain_history_revision_id - int8 not null - key_tag + int8 not null + key_tag - int4 not null - domain_repo_id + int4 not null + domain_repo_id - text - + text + domaindsdatahistory_995b060d:w->domainhistory_a54cc226:e - - - + + + @@ -3048,9 +3048,9 @@ td.section { domaindsdatahistory_995b060d:w->domainhistory_a54cc226:e - - - + + + @@ -3061,9 +3061,9 @@ td.section { domainhistoryhost_9f3f23ee - - public.DomainHistoryHost - + + public."DomainHistoryHost" + [table] domain_history_history_revision_id @@ -3080,14 +3080,14 @@ td.section { domainhistoryhost_9f3f23ee:w->domainhistory_a54cc226:e - - - - - - - - fka9woh3hu8gx5x0vly6bai327n + + + + + + + + fka9woh3hu8gx5x0vly6bai327n @@ -3106,55 +3106,55 @@ td.section { <title> domaintransactionrecord_6e77ff61 - - public.DomainTransactionRecord - - [table] - id + + public."DomainTransactionRecord" + + [table] + id - bigserial not null + bigserial not null - auto-incremented - report_amount + auto-incremented + report_amount - int4 not null - report_field + int4 not null + report_field - text not null - reporting_time + text not null + reporting_time - timestamptz not null - tld + timestamptz not null + tld - text not null - domain_repo_id + text not null + domain_repo_id - text - history_revision_id + text + history_revision_id - int8 - + int8 + domaintransactionrecord_6e77ff61:w->domainhistory_a54cc226:e - - - + + + - fkcjqe54u72kha71vkibvxhjye7 + fkcjqe54u72kha71vkibvxhjye7 domaintransactionrecord_6e77ff61:w->domainhistory_a54cc226:e - - - + + + @@ -3165,9 +3165,9 @@ td.section { domaintransactionrecord_6e77ff61:w->tld_f1fa57e2:e - - - + + + @@ -3178,9 +3178,9 @@ td.section { graceperiodhistory_40ccc1f1 - - public.GracePeriodHistory - + + public."GracePeriodHistory" + [table] grace_period_history_revision_id @@ -3241,17 +3241,17 @@ td.section { featureflag_3ee43a78 - - public.FeatureFlag - - [table] - feature_name - - text not null - status - - "hstore" not null - + + public."FeatureFlag" + + [table] + feature_name + + text not null + status + + hstore not null + @@ -3283,9 +3283,9 @@ td.section { <title> lock_f21d4861 - - public.Lock - + + public."Lock" + [table] resource_name @@ -3305,129 +3305,129 @@ td.section { packagepromotion_56aa33 - - public.PackagePromotion - - [table] - package_promotion_id + + public."PackagePromotion" + + [table] + package_promotion_id - bigserial not null + bigserial not null - auto-incremented - last_notification_sent + auto-incremented + last_notification_sent - timestamptz - max_creates + timestamptz + max_creates - int4 not null - max_domains + int4 not null + max_domains - int4 not null - next_billing_date + int4 not null + next_billing_date - timestamptz not null - package_price_amount + timestamptz not null + package_price_amount - numeric(19, 2) not null - package_price_currency + numeric(19, 2) not null + package_price_currency - text not null - token + text not null + token - text not null - + text not null + premiumentry_b0060b91 - - public.PremiumEntry - - [table] - revision_id + + public."PremiumEntry" + + [table] + revision_id - int8 not null - price + int8 not null + price - numeric(19, 2) not null - domain_label + numeric(19, 2) not null + domain_label - text not null - + text not null + premiumlist_7c3ea68b - - public.PremiumList - - [table] - revision_id + + public."PremiumList" + + [table] + revision_id - bigserial not null + bigserial not null - auto-incremented - creation_timestamp + auto-incremented + creation_timestamp - timestamptz - name + timestamptz + name - text not null - bloom_filter + text not null + bloom_filter - bytea not null - currency + bytea not null + currency - text not null - + text not null + premiumentry_b0060b91:w->premiumlist_7c3ea68b:e - - - - - - - + + + + + + + fko0gw90lpo1tuee56l0nb6y6g5 rderevision_83396864 - - public.RdeRevision - - [table] - tld + + public."RdeRevision" + + [table] + tld - text not null - mode + text not null + mode - text not null - "date" + text not null + "date" - date not null - update_timestamp + date not null + update_timestamp - timestamptz - revision + timestamptz + revision - int4 not null - + int4 not null + registrarpoc_ab47054d - - public.RegistrarPoc - + + public."RegistrarPoc" + [table] email_address @@ -3490,9 +3490,9 @@ td.section { registrarupdatehistory_8a38bed4 - - public.RegistrarUpdateHistory - + + public."RegistrarUpdateHistory" + [table] history_revision_id @@ -3517,7 +3517,7 @@ td.section { _text billing_account_map - "hstore" + hstore block_premium_names bool not null @@ -3685,9 +3685,9 @@ td.section { registrarpocupdatehistory_31e5d9aa - - public.RegistrarPocUpdateHistory - + + public."RegistrarPocUpdateHistory" + [table] history_revision_id @@ -3797,9 +3797,9 @@ td.section { registrylock_ac88663e - - public.RegistryLock - + + public."RegistryLock" + [table] revision_id @@ -3864,164 +3864,164 @@ td.section { reservedentry_1a7b8520 - - public.ReservedEntry - - [table] - revision_id + + public."ReservedEntry" + + [table] + revision_id - int8 not null - comment + int8 not null + comment - text - reservation_type + text + reservation_type - int4 not null - domain_label + int4 not null + domain_label - text not null - + text not null + reservedlist_b97c3f1c - - public.ReservedList - - [table] - revision_id + + public."ReservedList" + + [table] + revision_id - bigserial not null + bigserial not null - auto-incremented - creation_timestamp + auto-incremented + creation_timestamp - timestamptz not null - name + timestamptz not null + name - text not null - + text not null + reservedentry_1a7b8520:w->reservedlist_b97c3f1c:e - - - - - - - + + + + + + + fkgq03rk0bt1hb915dnyvd3vnfc serversecret_6cc90f09 - - public.ServerSecret - - [table] - secret + + public."ServerSecret" + + [table] + secret - uuid not null - id + uuid not null + id - int8 not null - + int8 not null + signedmarkrevocationentry_99c39721 - - public.SignedMarkRevocationEntry - - [table] - revision_id - - int8 not null - revocation_time - - timestamptz not null - smd_id - - text not null - + + public."SignedMarkRevocationEntry" + + [table] + revision_id + + int8 not null + revocation_time + + timestamptz not null + smd_id + + text not null + signedmarkrevocationlist_c5d968fb - - public.SignedMarkRevocationList - - [table] - revision_id + + public."SignedMarkRevocationList" + + [table] + revision_id - bigserial not null + bigserial not null - auto-incremented - creation_time + auto-incremented + creation_time - timestamptz - + timestamptz + signedmarkrevocationentry_99c39721:w->signedmarkrevocationlist_c5d968fb:e - - - - - - - + + + + + + + fk5ivlhvs3121yx2li5tqh54u4 spec11threatmatch_a61228a6 - - public.Spec11ThreatMatch - - [table] - id + + public."Spec11ThreatMatch" + + [table] + id - bigserial not null + bigserial not null - auto-incremented - check_date + auto-incremented + check_date - date not null - domain_name + date not null + domain_name - text not null - domain_repo_id + text not null + domain_repo_id - text not null - registrar_id + text not null + registrar_id - text not null - threat_types + text not null + threat_types - _text not null - tld + _text not null + tld - text not null - + text not null + tmchcrl_d282355 - - public.TmchCrl - + + public."TmchCrl" + [table] certificate_revocations @@ -4041,9 +4041,9 @@ td.section { userupdatehistory_24efd476 - - public.UserUpdateHistory - + + public."UserUpdateHistory" + [table] history_revision_id @@ -4083,7 +4083,7 @@ td.section { bool not null registrar_roles - "hstore" + hstore update_timestamp timestamptz @@ -4125,8 +4125,8 @@ td.section {

Tables

- public.UserUpdateHistory [table] + + public."UserUpdateHistory" [table]
UserUpdateHistory_pkey"UserUpdateHistory_pkey" [primary key]
generated bySchemaCrawler 16.10.1SchemaCrawler 16.21.2
generated on2024-06-05 18:34:52.1708499452024-06-20 20:07:00
last flyway file
- @@ -4182,7 +4182,7 @@ td.section { - + @@ -4229,7 +4229,7 @@ td.section { - + @@ -4252,7 +4252,7 @@ td.section { - + @@ -4264,7 +4264,7 @@ td.section { - + @@ -4276,7 +4276,7 @@ td.section { - + @@ -4313,7 +4313,7 @@ td.section { - + @@ -4337,8 +4337,8 @@ td.section {
- public.AllocationToken [table] + + public."AllocationToken" [table]
token_status_transitions"hstore"hstore
AllocationToken_pkey"AllocationToken_pkey" [primary key]
token ←(0..many) public.BillingEvent.allocation_tokentoken ←(0..many) public."BillingEvent".allocation_token
token ←(0..many) public.Domain.current_package_tokentoken ←(0..many) public."Domain".current_package_token
token ←(0..many) public.DomainHistory.current_package_tokentoken ←(0..many) public."DomainHistory".current_package_token
AllocationToken_pkey"AllocationToken_pkey" [unique index]

 

- @@ -4406,7 +4406,7 @@ td.section { - + @@ -4423,25 +4423,13 @@ td.section { - - - - - - - - - - - - - + @@ -4453,7 +4441,7 @@ td.section { - + @@ -4465,7 +4453,19 @@ td.section { - + + + + + + + + + + + + + @@ -4477,12 +4477,12 @@ td.section { - + - + @@ -4495,7 +4495,7 @@ td.section { - + @@ -4579,8 +4579,8 @@ td.section {
- public.BillingCancellation [table] + + public."BillingCancellation" [table]
BillingCancellation_pkey"BillingCancellation_pkey" [primary key]
fk_domain_transfer_billing_cancellation_id[foreign key, with no action]
billing_cancellation_id ←(0..many) public.Domain.transfer_billing_cancellation_id
fk_billing_cancellation_billing_event_id [foreign key, with no action]
billing_event_id (0..many)→ public.BillingEvent.billing_event_idbilling_event_id (0..many)→ public."BillingEvent".billing_event_id
billing_recurrence_id (0..many)→ public.BillingRecurrence.billing_recurrence_idbilling_recurrence_id (0..many)→ public."BillingRecurrence".billing_recurrence_id
registrar_id (0..many)→ public.Registrar.registrar_idregistrar_id (0..many)→ public."Registrar".registrar_id
fk_domain_transfer_billing_cancellation_id[foreign key, with no action]
billing_cancellation_id ←(0..many) public."Domain".transfer_billing_cancellation_id
domain_repo_id (0..many)→ public.DomainHistory.domain_repo_iddomain_repo_id (0..many)→ public."DomainHistory".domain_repo_id
domain_history_revision_id (0..many)→ public.DomainHistory.history_revision_iddomain_history_revision_id (0..many)→ public."DomainHistory".history_revision_id
BillingCancellation_pkey"BillingCancellation_pkey" [unique index]

 

- @@ -4673,7 +4673,7 @@ td.section { - + @@ -4690,49 +4690,25 @@ td.section { - - - - - - - - - - - - - + - + - - - - - - - - - - - - - + @@ -4744,7 +4720,7 @@ td.section { - + @@ -4756,7 +4732,31 @@ td.section { - + + + + + + + + + + + + + + + + + + + + + + + + + @@ -4768,12 +4768,12 @@ td.section { - + - + @@ -4785,12 +4785,12 @@ td.section { - + - + @@ -4803,7 +4803,7 @@ td.section { - + @@ -4899,8 +4899,8 @@ td.section {
- public.BillingEvent [table] + + public."BillingEvent" [table]
BillingEvent_pkey"BillingEvent_pkey" [primary key]
fk_billing_event_allocation_token[foreign key, with no action]
allocation_token (0..many)→ public.AllocationToken.token
fk_billing_cancellation_billing_event_id [foreign key, with no action]
billing_event_id ←(0..many) public.BillingCancellation.billing_event_idbilling_event_id ←(0..many) public."BillingCancellation".billing_event_id
fk_domain_transfer_billing_event_idfk_billing_event_allocation_token [foreign key, with no action]
billing_event_id ←(0..many) public.Domain.transfer_billing_event_id
fk_grace_period_billing_event_id[foreign key, with no action]
billing_event_id ←(0..many) public.GracePeriod.billing_event_idallocation_token (0..many)→ public."AllocationToken".token
cancellation_matching_billing_recurrence_id (0..many)→ public.BillingRecurrence.billing_recurrence_idcancellation_matching_billing_recurrence_id (0..many)→ public."BillingRecurrence".billing_recurrence_id
registrar_id (0..many)→ public.Registrar.registrar_idregistrar_id (0..many)→ public."Registrar".registrar_id
fk_domain_transfer_billing_event_id[foreign key, with no action]
billing_event_id ←(0..many) public."Domain".transfer_billing_event_id
fk_grace_period_billing_event_id[foreign key, with no action]
billing_event_id ←(0..many) public."GracePeriod".billing_event_id
domain_repo_id (0..many)→ public.DomainHistory.domain_repo_iddomain_repo_id (0..many)→ public."DomainHistory".domain_repo_id
domain_history_revision_id (0..many)→ public.DomainHistory.history_revision_iddomain_history_revision_id (0..many)→ public."DomainHistory".history_revision_id
domain_repo_id (0..many)→ public.DomainHistory.domain_repo_iddomain_repo_id (0..many)→ public."DomainHistory".domain_repo_id
recurrence_history_revision_id (0..many)→ public.DomainHistory.history_revision_idrecurrence_history_revision_id (0..many)→ public."DomainHistory".history_revision_id
BillingEvent_pkey"BillingEvent_pkey" [unique index]

 

- @@ -4983,7 +4983,7 @@ td.section { - + @@ -5006,7 +5006,7 @@ td.section { - + @@ -5018,43 +5018,7 @@ td.section { - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -5066,7 +5030,43 @@ td.section { - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -5078,12 +5078,12 @@ td.section { - + - + @@ -5096,7 +5096,7 @@ td.section { - + @@ -5180,8 +5180,8 @@ td.section {
- public.BillingRecurrence [table] + + public."BillingRecurrence" [table]
BillingRecurrence_pkey"BillingRecurrence_pkey" [primary key]
billing_recurrence_id ←(0..many) public.BillingCancellation.billing_recurrence_idbilling_recurrence_id ←(0..many) public."BillingCancellation".billing_recurrence_id
billing_recurrence_id ←(0..many) public.BillingEvent.cancellation_matching_billing_recurrence_id
fk_domain_billing_recurrence_id[foreign key, with no action]
billing_recurrence_id ←(0..many) public.Domain.billing_recurrence_id
fk_domain_transfer_billing_recurrence_id[foreign key, with no action]
billing_recurrence_id ←(0..many) public.Domain.transfer_billing_recurrence_id
fk_grace_period_billing_recurrence_id[foreign key, with no action]
billing_recurrence_id ←(0..many) public.GracePeriod.billing_recurrence_idbilling_recurrence_id ←(0..many) public."BillingEvent".cancellation_matching_billing_recurrence_id
registrar_id (0..many)→ public.Registrar.registrar_idregistrar_id (0..many)→ public."Registrar".registrar_id
fk_domain_billing_recurrence_id[foreign key, with no action]
billing_recurrence_id ←(0..many) public."Domain".billing_recurrence_id
fk_domain_transfer_billing_recurrence_id[foreign key, with no action]
billing_recurrence_id ←(0..many) public."Domain".transfer_billing_recurrence_id
fk_grace_period_billing_recurrence_id[foreign key, with no action]
billing_recurrence_id ←(0..many) public."GracePeriod".billing_recurrence_id
domain_repo_id (0..many)→ public.DomainHistory.domain_repo_iddomain_repo_id (0..many)→ public."DomainHistory".domain_repo_id
domain_history_revision_id (0..many)→ public.DomainHistory.history_revision_iddomain_history_revision_id (0..many)→ public."DomainHistory".history_revision_id
BillingRecurrence_pkey"BillingRecurrence_pkey" [unique index]

 

- @@ -5219,7 +5219,7 @@ td.section { - + @@ -5237,7 +5237,7 @@ td.section { - + @@ -5249,8 +5249,8 @@ td.section {
- public.BsaDomainRefresh [table] + + public."BsaDomainRefresh" [table]
BsaDomainRefresh_pkey"BsaDomainRefresh_pkey" [primary key]
BsaDomainRefresh_pkey"BsaDomainRefresh_pkey" [unique index]

 

- @@ -5293,7 +5293,7 @@ td.section { - + @@ -5311,7 +5311,7 @@ td.section { - + @@ -5335,8 +5335,8 @@ td.section {
- public.BsaDownload [table] + + public."BsaDownload" [table]
BsaDownload_pkey"BsaDownload_pkey" [primary key]
BsaDownload_pkey"BsaDownload_pkey" [unique index]

 

- @@ -5359,7 +5359,7 @@ td.section { - + @@ -5382,7 +5382,7 @@ td.section { - + @@ -5395,7 +5395,7 @@ td.section { - + @@ -5407,8 +5407,8 @@ td.section {
- public.BsaLabel [table] + + public."BsaLabel" [table]
BsaLabel_pkey"BsaLabel_pkey" [primary key]
label ←(0..many) public.BsaUnblockableDomain.labellabel ←(0..many) public."BsaUnblockableDomain".label
BsaLabel_pkey"BsaLabel_pkey" [unique index]

 

- @@ -5441,7 +5441,7 @@ td.section { - + @@ -5469,7 +5469,7 @@ td.section { - + @@ -5482,7 +5482,7 @@ td.section { - + @@ -5499,8 +5499,8 @@ td.section {
- public.BsaUnblockableDomain [table] + + public."BsaUnblockableDomain" [table]
BsaUnblockableDomain_pkey"BsaUnblockableDomain_pkey" [primary key]
label (0..many)→ public.BsaLabel.labellabel (0..many)→ public."BsaLabel".label
BsaUnblockableDomain_pkey"BsaUnblockableDomain_pkey" [unique index]

 

- @@ -5528,7 +5528,7 @@ td.section { - + @@ -5556,7 +5556,7 @@ td.section { - + @@ -5569,7 +5569,7 @@ td.section { - + @@ -5586,8 +5586,8 @@ td.section {
- public.ClaimsEntry [table] + + public."ClaimsEntry" [table]
ClaimsEntry_pkey"ClaimsEntry_pkey" [primary key]
revision_id (0..many)→ public.ClaimsList.revision_idrevision_id (0..many)→ public."ClaimsList".revision_id
ClaimsEntry_pkey"ClaimsEntry_pkey" [unique index]

 

- @@ -5620,7 +5620,7 @@ td.section { - + @@ -5643,7 +5643,7 @@ td.section { - + @@ -5656,7 +5656,7 @@ td.section { - + @@ -5668,8 +5668,8 @@ td.section {
- public.ClaimsList [table] + + public."ClaimsList" [table]
ClaimsList_pkey"ClaimsList_pkey" [primary key]
revision_id ←(0..many) public.ClaimsEntry.revision_idrevision_id ←(0..many) public."ClaimsEntry".revision_id
ClaimsList_pkey"ClaimsList_pkey" [unique index]

 

- @@ -5732,7 +5732,7 @@ td.section { - + @@ -5768,7 +5768,7 @@ td.section { - + @@ -5816,8 +5816,8 @@ td.section {
- public.ConsoleEppActionHistory [table] + + public."ConsoleEppActionHistory" [table]
ConsoleEppActionHistory_pkey"ConsoleEppActionHistory_pkey" [primary key]
ConsoleEppActionHistory_pkey"ConsoleEppActionHistory_pkey" [unique index]

 

- @@ -6125,7 +6125,7 @@ td.section { - + @@ -6142,85 +6142,13 @@ td.section { - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -6232,7 +6160,7 @@ td.section { - + @@ -6244,7 +6172,7 @@ td.section { - + @@ -6256,7 +6184,7 @@ td.section { - + @@ -6268,7 +6196,79 @@ td.section { - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -6305,7 +6305,7 @@ td.section { - + @@ -6353,8 +6353,8 @@ td.section {
- public.Contact [table] + + public."Contact" [table]
Contact_pkey"Contact_pkey" [primary key]
fk_contact_history_contact_repo_id[foreign key, with no action]
repo_id ←(0..many) public.ContactHistory.contact_repo_id
fk_domain_admin_contact[foreign key, with no action]
repo_id ←(0..many) public.Domain.admin_contact
fk_domain_billing_contact[foreign key, with no action]
repo_id ←(0..many) public.Domain.billing_contact
fk_domain_registrant_contact[foreign key, with no action]
repo_id ←(0..many) public.Domain.registrant_contact
fk_domain_tech_contact[foreign key, with no action]
repo_id ←(0..many) public.Domain.tech_contact
fk_poll_message_contact_repo_id[foreign key, with no action]
repo_id ←(0..many) public.PollMessage.contact_repo_id
fk1sfyj7o7954prbn1exk7lpnoe [foreign key, with no action]
creation_registrar_id (0..many)→ public.Registrar.registrar_idcreation_registrar_id (0..many)→ public."Registrar".registrar_id
current_sponsor_registrar_id (0..many)→ public.Registrar.registrar_idcurrent_sponsor_registrar_id (0..many)→ public."Registrar".registrar_id
last_epp_update_registrar_id (0..many)→ public.Registrar.registrar_idlast_epp_update_registrar_id (0..many)→ public."Registrar".registrar_id
transfer_gaining_registrar_id (0..many)→ public.Registrar.registrar_idtransfer_gaining_registrar_id (0..many)→ public."Registrar".registrar_id
transfer_losing_registrar_id (0..many)→ public.Registrar.registrar_idtransfer_losing_registrar_id (0..many)→ public."Registrar".registrar_id
fk_contact_history_contact_repo_id[foreign key, with no action]
repo_id ←(0..many) public."ContactHistory".contact_repo_id
fk_domain_admin_contact[foreign key, with no action]
repo_id ←(0..many) public."Domain".admin_contact
fk_domain_billing_contact[foreign key, with no action]
repo_id ←(0..many) public."Domain".billing_contact
fk_domain_registrant_contact[foreign key, with no action]
repo_id ←(0..many) public."Domain".registrant_contact
fk_domain_tech_contact[foreign key, with no action]
repo_id ←(0..many) public."Domain".tech_contact
fk_poll_message_contact_repo_id[foreign key, with no action]
repo_id ←(0..many) public."PollMessage".contact_repo_id
Contact_pkey"Contact_pkey" [unique index]

 

- @@ -6712,7 +6712,7 @@ td.section { - + @@ -6740,7 +6740,7 @@ td.section { - + @@ -6752,7 +6752,7 @@ td.section { - + @@ -6764,12 +6764,12 @@ td.section { - + - + @@ -6830,7 +6830,7 @@ td.section { - + @@ -6847,7 +6847,7 @@ td.section {
- public.ContactHistory [table] + + public."ContactHistory" [table]
ContactHistory_pkey"ContactHistory_pkey" [primary key]
contact_repo_id (0..many)→ public.Contact.repo_idcontact_repo_id (0..many)→ public."Contact".repo_id
history_registrar_id (0..many)→ public.Registrar.registrar_idhistory_registrar_id (0..many)→ public."Registrar".registrar_id
contact_repo_id ←(0..many) public.PollMessage.contact_repo_idcontact_repo_id ←(0..many) public."PollMessage".contact_repo_id
history_revision_id ←(0..many) public.PollMessage.contact_history_revision_idhistory_revision_id ←(0..many) public."PollMessage".contact_history_revision_id
ContactHistory_pkey"ContactHistory_pkey" [unique index]

 

- @@ -6881,7 +6881,7 @@ td.section { - + @@ -6904,7 +6904,7 @@ td.section { - + @@ -6921,8 +6921,8 @@ td.section {
+ public."Cursor" [table]
Cursor_pkey"Cursor_pkey" [primary key]
Cursor_pkey"Cursor_pkey" [unique index]

 

- @@ -6960,7 +6960,7 @@ td.section { - + @@ -7003,7 +7003,7 @@ td.section { - + @@ -7028,7 +7028,7 @@ td.section { - + @@ -7060,8 +7060,8 @@ td.section {
- public.DelegationSignerData [table] + + public."DelegationSignerData" [table]
DelegationSignerData_pkey"DelegationSignerData_pkey" [primary key]
domain_repo_id (0..many)→ public.Domain.repo_iddomain_repo_id (0..many)→ public."Domain".repo_id
DelegationSignerData_pkey"DelegationSignerData_pkey" [unique index]

 

- @@ -7109,7 +7109,7 @@ td.section { - + @@ -7127,7 +7127,7 @@ td.section { - + @@ -7163,8 +7163,8 @@ td.section {
- public.DnsRefreshRequest [table] + + public."DnsRefreshRequest" [table]
DnsRefreshRequest_pkey"DnsRefreshRequest_pkey" [primary key]
DnsRefreshRequest_pkey"DnsRefreshRequest_pkey" [unique index]

 

- @@ -7442,7 +7442,7 @@ td.section { - + @@ -7460,60 +7460,12 @@ td.section { - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -7525,7 +7477,7 @@ td.section { - + @@ -7537,103 +7489,19 @@ td.section { - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -7645,7 +7513,19 @@ td.section { - + + + + + + + + + + + + + @@ -7657,7 +7537,7 @@ td.section { - + @@ -7669,31 +7549,31 @@ td.section { - + - + - + - + - + @@ -7705,7 +7585,127 @@ td.section { - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -7838,7 +7838,7 @@ td.section { - + @@ -7910,8 +7910,8 @@ td.section {
- public.Domain [table] + + public."Domain" [table]
Domain_pkey"Domain_pkey" [primary key]
fk_domain_current_package_tokenfktr24j9v14ph2mfuw2gsmt12kq [foreign key, with no action]
current_package_token (0..many)→ public.AllocationToken.token
fk_domain_transfer_billing_cancellation_id[foreign key, with no action]
transfer_billing_cancellation_id (0..many)→ public.BillingCancellation.billing_cancellation_id
fk_domain_transfer_billing_event_id[foreign key, with no action]
transfer_billing_event_id (0..many)→ public.BillingEvent.billing_event_id
fk_domain_billing_recurrence_id[foreign key, with no action]
billing_recurrence_id (0..many)→ public.BillingRecurrence.billing_recurrence_id
fk_domain_transfer_billing_recurrence_id[foreign key, with no action]
transfer_billing_recurrence_id (0..many)→ public.BillingRecurrence.billing_recurrence_idrepo_id ←(0..many) public."DelegationSignerData".domain_repo_id
admin_contact (0..many)→ public.Contact.repo_idadmin_contact (0..many)→ public."Contact".repo_id
billing_contact (0..many)→ public.Contact.repo_idbilling_contact (0..many)→ public."Contact".repo_id
fk_domain_registrant_contactfk_domain_billing_recurrence_id [foreign key, with no action]
registrant_contact (0..many)→ public.Contact.repo_id
fk_domain_tech_contact[foreign key, with no action]
tech_contact (0..many)→ public.Contact.repo_id
fktr24j9v14ph2mfuw2gsmt12kq[foreign key, with no action]
repo_id ←(0..many) public.DelegationSignerData.domain_repo_id
fk_domain_history_domain_repo_id[foreign key, with no action]
repo_id ←(0..many) public.DomainHistory.domain_repo_id
fkfmi7bdink53swivs390m2btxg[foreign key, with no action]
repo_id ←(0..many) public.DomainHost.domain_repo_id
fk_grace_period_domain_repo_id[foreign key, with no action]
repo_id ←(0..many) public.GracePeriod.domain_repo_id
fk_host_superordinate_domain[foreign key, with no action]
repo_id ←(0..many) public.Host.superordinate_domain
fk_poll_message_domain_repo_id[foreign key, with no action]
repo_id ←(0..many) public.PollMessage.domain_repo_idbilling_recurrence_id (0..many)→ public."BillingRecurrence".billing_recurrence_id
creation_registrar_id (0..many)→ public.Registrar.registrar_idcreation_registrar_id (0..many)→ public."Registrar".registrar_id
fk_domain_current_package_token[foreign key, with no action]
current_package_token (0..many)→ public."AllocationToken".token
current_sponsor_registrar_id (0..many)→ public.Registrar.registrar_idcurrent_sponsor_registrar_id (0..many)→ public."Registrar".registrar_id
last_epp_update_registrar_id (0..many)→ public.Registrar.registrar_idlast_epp_update_registrar_id (0..many)→ public."Registrar".registrar_id
fk_domain_transfer_gaining_registrar_idfk_domain_registrant_contact [foreign key, with no action]
transfer_gaining_registrar_id (0..many)→ public.Registrar.registrar_idregistrant_contact (0..many)→ public."Contact".repo_id
fk_domain_transfer_losing_registrar_idfk_domain_tech_contact [foreign key, with no action]
transfer_losing_registrar_id (0..many)→ public.Registrar.registrar_idtech_contact (0..many)→ public."Contact".repo_id
tld (0..many)→ public.Tld.tld_nametld (0..many)→ public."Tld".tld_name
fk_domain_transfer_billing_cancellation_id[foreign key, with no action]
transfer_billing_cancellation_id (0..many)→ public."BillingCancellation".billing_cancellation_id
fk_domain_transfer_billing_event_id[foreign key, with no action]
transfer_billing_event_id (0..many)→ public."BillingEvent".billing_event_id
fk_domain_transfer_billing_recurrence_id[foreign key, with no action]
transfer_billing_recurrence_id (0..many)→ public."BillingRecurrence".billing_recurrence_id
fk_domain_transfer_gaining_registrar_id[foreign key, with no action]
transfer_gaining_registrar_id (0..many)→ public."Registrar".registrar_id
fk_domain_transfer_losing_registrar_id[foreign key, with no action]
transfer_losing_registrar_id (0..many)→ public."Registrar".registrar_id
fk_domain_history_domain_repo_id[foreign key, with no action]
repo_id ←(0..many) public."DomainHistory".domain_repo_id
fkfmi7bdink53swivs390m2btxg[foreign key, with no action]
repo_id ←(0..many) public."DomainHost".domain_repo_id
fk_grace_period_domain_repo_id[foreign key, with no action]
repo_id ←(0..many) public."GracePeriod".domain_repo_id
fk_host_superordinate_domain[foreign key, with no action]
repo_id ←(0..many) public."Host".superordinate_domain
fk_poll_message_domain_repo_id[foreign key, with no action]
repo_id ←(0..many) public."PollMessage".domain_repo_id
Domain_pkey"Domain_pkey" [unique index]

 

- @@ -7959,7 +7959,7 @@ td.section { - + @@ -7982,12 +7982,12 @@ td.section { - + - + @@ -8000,7 +8000,7 @@ td.section { - + @@ -8029,8 +8029,8 @@ td.section {
- public.DomainDsDataHistory [table] + + public."DomainDsDataHistory" [table]
DomainDsDataHistory_pkey"DomainDsDataHistory_pkey" [primary key]
domain_repo_id (0..many)→ public.DomainHistory.domain_repo_iddomain_repo_id (0..many)→ public."DomainHistory".domain_repo_id
domain_history_revision_id (0..many)→ public.DomainHistory.history_revision_iddomain_history_revision_id (0..many)→ public."DomainHistory".history_revision_id
DomainDsDataHistory_pkey"DomainDsDataHistory_pkey" [unique index]

 

- @@ -8378,7 +8378,7 @@ td.section { - + @@ -8406,7 +8406,7 @@ td.section { - + @@ -8418,7 +8418,7 @@ td.section { - + @@ -8430,7 +8430,7 @@ td.section { - + @@ -8442,12 +8442,12 @@ td.section { - + - + @@ -8459,12 +8459,12 @@ td.section { - + - + @@ -8476,12 +8476,12 @@ td.section { - + - + @@ -8493,12 +8493,12 @@ td.section { - + - + @@ -8510,12 +8510,12 @@ td.section { - + - + @@ -8527,12 +8527,12 @@ td.section { - + - + @@ -8544,12 +8544,12 @@ td.section { - + - + @@ -8561,12 +8561,12 @@ td.section { - + - + @@ -8578,12 +8578,12 @@ td.section { - + - + @@ -8644,7 +8644,7 @@ td.section { - + @@ -8661,8 +8661,8 @@ td.section {
- public.DomainHistory [table] + + public."DomainHistory" [table]
DomainHistory_pkey"DomainHistory_pkey" [primary key]
current_package_token (0..many)→ public.AllocationToken.tokencurrent_package_token (0..many)→ public."AllocationToken".token
domain_repo_id (0..many)→ public.Domain.repo_iddomain_repo_id (0..many)→ public."Domain".repo_id
history_registrar_id (0..many)→ public.Registrar.registrar_idhistory_registrar_id (0..many)→ public."Registrar".registrar_id
domain_repo_id ←(0..many) public.BillingCancellation.domain_repo_iddomain_repo_id ←(0..many) public."BillingCancellation".domain_repo_id
history_revision_id ←(0..many) public.BillingCancellation.domain_history_revision_idhistory_revision_id ←(0..many) public."BillingCancellation".domain_history_revision_id
domain_repo_id ←(0..many) public.BillingEvent.domain_repo_iddomain_repo_id ←(0..many) public."BillingEvent".domain_repo_id
history_revision_id ←(0..many) public.BillingEvent.domain_history_revision_idhistory_revision_id ←(0..many) public."BillingEvent".domain_history_revision_id
domain_repo_id ←(0..many) public.BillingEvent.domain_repo_iddomain_repo_id ←(0..many) public."BillingEvent".domain_repo_id
history_revision_id ←(0..many) public.BillingEvent.recurrence_history_revision_idhistory_revision_id ←(0..many) public."BillingEvent".recurrence_history_revision_id
domain_repo_id ←(0..many) public.BillingRecurrence.domain_repo_iddomain_repo_id ←(0..many) public."BillingRecurrence".domain_repo_id
history_revision_id ←(0..many) public.BillingRecurrence.domain_history_revision_idhistory_revision_id ←(0..many) public."BillingRecurrence".domain_history_revision_id
domain_repo_id ←(0..many) public.DomainDsDataHistory.domain_repo_iddomain_repo_id ←(0..many) public."DomainDsDataHistory".domain_repo_id
history_revision_id ←(0..many) public.DomainDsDataHistory.domain_history_revision_idhistory_revision_id ←(0..many) public."DomainDsDataHistory".domain_history_revision_id
domain_repo_id ←(0..many) public.DomainHistoryHost.domain_history_domain_repo_iddomain_repo_id ←(0..many) public."DomainHistoryHost".domain_history_domain_repo_id
history_revision_id ←(0..many) public.DomainHistoryHost.domain_history_history_revision_idhistory_revision_id ←(0..many) public."DomainHistoryHost".domain_history_history_revision_id
domain_repo_id ←(0..many) public.DomainTransactionRecord.domain_repo_iddomain_repo_id ←(0..many) public."DomainTransactionRecord".domain_repo_id
history_revision_id ←(0..many) public.DomainTransactionRecord.history_revision_idhistory_revision_id ←(0..many) public."DomainTransactionRecord".history_revision_id
domain_repo_id ←(0..many) public.GracePeriodHistory.domain_repo_iddomain_repo_id ←(0..many) public."GracePeriodHistory".domain_repo_id
history_revision_id ←(0..many) public.GracePeriodHistory.domain_history_revision_idhistory_revision_id ←(0..many) public."GracePeriodHistory".domain_history_revision_id
domain_repo_id ←(0..many) public.PollMessage.domain_repo_iddomain_repo_id ←(0..many) public."PollMessage".domain_repo_id
history_revision_id ←(0..many) public.PollMessage.domain_history_revision_idhistory_revision_id ←(0..many) public."PollMessage".domain_history_revision_id
DomainHistory_pkey"DomainHistory_pkey" [unique index]

 

- @@ -8695,12 +8695,12 @@ td.section { - + - + @@ -8747,8 +8747,8 @@ td.section {
- public.DomainHistoryHost [table] + + public."DomainHistoryHost" [table]
domain_history_domain_repo_id (0..many)→ public.DomainHistory.domain_repo_iddomain_history_domain_repo_id (0..many)→ public."DomainHistory".domain_repo_id
domain_history_history_revision_id (0..many)→ public.DomainHistory.history_revision_iddomain_history_history_revision_id (0..many)→ public."DomainHistory".history_revision_id

 

- @@ -8776,7 +8776,7 @@ td.section { - + @@ -8788,7 +8788,7 @@ td.section { - + @@ -8830,8 +8830,8 @@ td.section {
- public.DomainHost [table] + + public."DomainHost" [table]
domain_repo_id (0..many)→ public.Domain.repo_iddomain_repo_id (0..many)→ public."Domain".repo_id
host_repo_id (0..many)→ public.Host.repo_idhost_repo_id (0..many)→ public."Host".repo_id

 

- @@ -8884,7 +8884,7 @@ td.section { - + @@ -8907,7 +8907,7 @@ td.section { - + @@ -8919,12 +8919,12 @@ td.section { - + - + @@ -8937,7 +8937,7 @@ td.section { - + @@ -8966,8 +8966,8 @@ td.section {
- public.DomainTransactionRecord [table] + + public."DomainTransactionRecord" [table]
DomainTransactionRecord_pkey"DomainTransactionRecord_pkey" [primary key]
tld (0..many)→ public.Tld.tld_nametld (0..many)→ public."Tld".tld_name
domain_repo_id (0..many)→ public.DomainHistory.domain_repo_iddomain_repo_id (0..many)→ public."DomainHistory".domain_repo_id
history_revision_id (0..many)→ public.DomainHistory.history_revision_idhistory_revision_id (0..many)→ public."DomainHistory".history_revision_id
DomainTransactionRecord_pkey"DomainTransactionRecord_pkey" [unique index]

 

- @@ -8978,7 +8978,7 @@ td.section { - + @@ -8990,7 +8990,7 @@ td.section { - + @@ -9008,7 +9008,7 @@ td.section { - + @@ -9020,8 +9020,8 @@ td.section {
- public.FeatureFlag [table] + + public."FeatureFlag" [table]
status"hstore" not nullhstore not null
FeatureFlag_pkey"FeatureFlag_pkey" [primary key]
FeatureFlag_pkey"FeatureFlag_pkey" [unique index]

 

- @@ -9069,7 +9069,7 @@ td.section { - + @@ -9092,7 +9092,7 @@ td.section { - + @@ -9104,7 +9104,7 @@ td.section { - + @@ -9116,7 +9116,7 @@ td.section { - + @@ -9128,7 +9128,7 @@ td.section { - + @@ -9165,7 +9165,7 @@ td.section { - + @@ -9189,8 +9189,8 @@ td.section {
- public.GracePeriod [table] + + public."GracePeriod" [table]
GracePeriod_pkey"GracePeriod_pkey" [primary key]
billing_event_id (0..many)→ public.BillingEvent.billing_event_idbilling_event_id (0..many)→ public."BillingEvent".billing_event_id
billing_recurrence_id (0..many)→ public.BillingRecurrence.billing_recurrence_idbilling_recurrence_id (0..many)→ public."BillingRecurrence".billing_recurrence_id
domain_repo_id (0..many)→ public.Domain.repo_iddomain_repo_id (0..many)→ public."Domain".repo_id
registrar_id (0..many)→ public.Registrar.registrar_idregistrar_id (0..many)→ public."Registrar".registrar_id
GracePeriod_pkey"GracePeriod_pkey" [unique index]

 

- @@ -9248,7 +9248,7 @@ td.section { - + @@ -9271,12 +9271,12 @@ td.section { - + - + @@ -9289,7 +9289,7 @@ td.section { - + @@ -9313,8 +9313,8 @@ td.section {
- public.GracePeriodHistory [table] + + public."GracePeriodHistory" [table]
GracePeriodHistory_pkey"GracePeriodHistory_pkey" [primary key]
domain_repo_id (0..many)→ public.DomainHistory.domain_repo_iddomain_repo_id (0..many)→ public."DomainHistory".domain_repo_id
domain_history_revision_id (0..many)→ public.DomainHistory.history_revision_iddomain_history_revision_id (0..many)→ public."DomainHistory".history_revision_id
GracePeriodHistory_pkey"GracePeriodHistory_pkey" [unique index]

 

- @@ -9407,7 +9407,7 @@ td.section { - + @@ -9424,49 +9424,13 @@ td.section { - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -9478,7 +9442,7 @@ td.section { - + @@ -9490,7 +9454,7 @@ td.section { - + @@ -9502,7 +9466,43 @@ td.section { - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -9551,7 +9551,7 @@ td.section { - + @@ -9599,8 +9599,8 @@ td.section {
- public.Host [table] + + public."Host" [table]
Host_pkey"Host_pkey" [primary key]
fk_host_superordinate_domain[foreign key, with no action]
superordinate_domain (0..many)→ public.Domain.repo_id
fk_domainhost_host_valid [foreign key, with no action]
repo_id ←(0..many) public.DomainHost.host_repo_id
fk_hosthistory_host[foreign key, with no action]
repo_id ←(0..many) public.HostHistory.host_repo_id
fk_poll_message_host_repo_id[foreign key, with no action]
repo_id ←(0..many) public.PollMessage.host_repo_idrepo_id ←(0..many) public."DomainHost".host_repo_id
creation_registrar_id (0..many)→ public.Registrar.registrar_idcreation_registrar_id (0..many)→ public."Registrar".registrar_id
current_sponsor_registrar_id (0..many)→ public.Registrar.registrar_idcurrent_sponsor_registrar_id (0..many)→ public."Registrar".registrar_id
last_epp_update_registrar_id (0..many)→ public.Registrar.registrar_idlast_epp_update_registrar_id (0..many)→ public."Registrar".registrar_id
fk_host_superordinate_domain[foreign key, with no action]
superordinate_domain (0..many)→ public."Domain".repo_id
fk_hosthistory_host[foreign key, with no action]
repo_id ←(0..many) public."HostHistory".host_repo_id
fk_poll_message_host_repo_id[foreign key, with no action]
repo_id ←(0..many) public."PollMessage".host_repo_id
Host_pkey"Host_pkey" [unique index]

 

- @@ -9743,7 +9743,7 @@ td.section { - + @@ -9766,24 +9766,24 @@ td.section { - + - + - + - + @@ -9795,12 +9795,12 @@ td.section { - + - + @@ -9873,7 +9873,7 @@ td.section { - + @@ -9890,8 +9890,8 @@ td.section {
- public.HostHistory [table] + + public."HostHistory" [table]
HostHistory_pkey"HostHistory_pkey" [primary key]
fk_hosthistory_hostfk_history_registrar_id [foreign key, with no action]
host_repo_id (0..many)→ public.Host.repo_idhistory_registrar_id (0..many)→ public."Registrar".registrar_id
fk_history_registrar_idfk_hosthistory_host [foreign key, with no action]
history_registrar_id (0..many)→ public.Registrar.registrar_idhost_repo_id (0..many)→ public."Host".repo_id
host_repo_id ←(0..many) public.PollMessage.host_repo_idhost_repo_id ←(0..many) public."PollMessage".host_repo_id
history_revision_id ←(0..many) public.PollMessage.host_history_revision_idhistory_revision_id ←(0..many) public."PollMessage".host_history_revision_id
HostHistory_pkey"HostHistory_pkey" [unique index]

 

- @@ -9924,7 +9924,7 @@ td.section { - + @@ -9947,7 +9947,7 @@ td.section { - + @@ -9964,8 +9964,8 @@ td.section {
- public.Lock [table] + + public."Lock" [table]
Lock_pkey"Lock_pkey" [primary key]
Lock_pkey"Lock_pkey" [unique index]

 

- @@ -10023,7 +10023,7 @@ td.section { - + @@ -10041,7 +10041,7 @@ td.section { - + @@ -10065,8 +10065,8 @@ td.section {
- public.PackagePromotion [table] + + public."PackagePromotion" [table]
PackagePromotion_pkey"PackagePromotion_pkey" [primary key]
PackagePromotion_pkey"PackagePromotion_pkey" [unique index]

 

- @@ -10214,7 +10214,7 @@ td.section { - + @@ -10237,7 +10237,7 @@ td.section { - + @@ -10249,7 +10249,7 @@ td.section { - + @@ -10261,7 +10261,7 @@ td.section { - + @@ -10273,7 +10273,7 @@ td.section { - + @@ -10285,7 +10285,7 @@ td.section { - + @@ -10297,7 +10297,7 @@ td.section { - + @@ -10309,12 +10309,12 @@ td.section { - + - + @@ -10326,12 +10326,12 @@ td.section { - + - + @@ -10343,12 +10343,12 @@ td.section { - + - + @@ -10361,7 +10361,7 @@ td.section { - + @@ -10409,8 +10409,8 @@ td.section {
- public.PollMessage [table] + + public."PollMessage" [table]
PollMessage_pkey"PollMessage_pkey" [primary key]
contact_repo_id (0..many)→ public.Contact.repo_idcontact_repo_id (0..many)→ public."Contact".repo_id
domain_repo_id (0..many)→ public.Domain.repo_iddomain_repo_id (0..many)→ public."Domain".repo_id
host_repo_id (0..many)→ public.Host.repo_idhost_repo_id (0..many)→ public."Host".repo_id
registrar_id (0..many)→ public.Registrar.registrar_idregistrar_id (0..many)→ public."Registrar".registrar_id
transfer_response_gaining_registrar_id (0..many)→ public.Registrar.registrar_idtransfer_response_gaining_registrar_id (0..many)→ public."Registrar".registrar_id
transfer_response_losing_registrar_id (0..many)→ public.Registrar.registrar_idtransfer_response_losing_registrar_id (0..many)→ public."Registrar".registrar_id
contact_repo_id (0..many)→ public.ContactHistory.contact_repo_idcontact_repo_id (0..many)→ public."ContactHistory".contact_repo_id
contact_history_revision_id (0..many)→ public.ContactHistory.history_revision_idcontact_history_revision_id (0..many)→ public."ContactHistory".history_revision_id
domain_repo_id (0..many)→ public.DomainHistory.domain_repo_iddomain_repo_id (0..many)→ public."DomainHistory".domain_repo_id
domain_history_revision_id (0..many)→ public.DomainHistory.history_revision_iddomain_history_revision_id (0..many)→ public."DomainHistory".history_revision_id
host_repo_id (0..many)→ public.HostHistory.host_repo_idhost_repo_id (0..many)→ public."HostHistory".host_repo_id
host_history_revision_id (0..many)→ public.HostHistory.history_revision_idhost_history_revision_id (0..many)→ public."HostHistory".history_revision_id
PollMessage_pkey"PollMessage_pkey" [unique index]

 

- @@ -10438,7 +10438,7 @@ td.section { - + @@ -10466,7 +10466,7 @@ td.section { - + @@ -10479,7 +10479,7 @@ td.section { - + @@ -10496,8 +10496,8 @@ td.section {
- public.PremiumEntry [table] + + public."PremiumEntry" [table]
PremiumEntry_pkey"PremiumEntry_pkey" [primary key]
revision_id (0..many)→ public.PremiumList.revision_idrevision_id (0..many)→ public."PremiumList".revision_id
PremiumEntry_pkey"PremiumEntry_pkey" [unique index]

 

- @@ -10540,7 +10540,7 @@ td.section { - + @@ -10563,7 +10563,7 @@ td.section { - + @@ -10576,7 +10576,7 @@ td.section { - + @@ -10600,8 +10600,8 @@ td.section {
- public.PremiumList [table] + + public."PremiumList" [table]
PremiumList_pkey"PremiumList_pkey" [primary key]
revision_id ←(0..many) public.PremiumEntry.revision_idrevision_id ←(0..many) public."PremiumEntry".revision_id
PremiumList_pkey"PremiumList_pkey" [unique index]

 

- @@ -10639,7 +10639,7 @@ td.section { - + @@ -10667,7 +10667,7 @@ td.section { - + @@ -10689,8 +10689,8 @@ td.section {
- public.RdeRevision [table] + + public."RdeRevision" [table]
RdeRevision_pkey"RdeRevision_pkey" [primary key]
RdeRevision_pkey"RdeRevision_pkey" [unique index]

 

- @@ -10706,7 +10706,7 @@ td.section { - + @@ -10933,7 +10933,7 @@ td.section { - + @@ -10956,7 +10956,7 @@ td.section { - + @@ -10968,7 +10968,7 @@ td.section { - + @@ -10980,7 +10980,7 @@ td.section { - + @@ -10992,7 +10992,7 @@ td.section { - + @@ -11004,7 +11004,7 @@ td.section { - + @@ -11016,7 +11016,7 @@ td.section { - + @@ -11028,7 +11028,7 @@ td.section { - + @@ -11040,7 +11040,7 @@ td.section { - + @@ -11052,7 +11052,7 @@ td.section { - + @@ -11064,7 +11064,7 @@ td.section { - + @@ -11076,7 +11076,7 @@ td.section { - + @@ -11088,7 +11088,7 @@ td.section { - + @@ -11100,7 +11100,7 @@ td.section { - + @@ -11112,7 +11112,7 @@ td.section { - + @@ -11124,7 +11124,7 @@ td.section { - + @@ -11136,7 +11136,7 @@ td.section { - + @@ -11148,7 +11148,7 @@ td.section { - + @@ -11160,7 +11160,7 @@ td.section { - + @@ -11172,7 +11172,7 @@ td.section { - + @@ -11184,7 +11184,7 @@ td.section { - + @@ -11196,7 +11196,7 @@ td.section { - + @@ -11208,7 +11208,7 @@ td.section { - + @@ -11220,7 +11220,7 @@ td.section { - + @@ -11232,7 +11232,7 @@ td.section { - + @@ -11244,7 +11244,7 @@ td.section { - + @@ -11269,7 +11269,7 @@ td.section { - + @@ -11293,8 +11293,8 @@ td.section {
- public.Registrar [table] + + public."Registrar" [table]
billing_account_map"hstore"hstore
Registrar_pkey"Registrar_pkey" [primary key]
registrar_id ←(0..many) public.BillingCancellation.registrar_idregistrar_id ←(0..many) public."BillingCancellation".registrar_id
registrar_id ←(0..many) public.BillingEvent.registrar_idregistrar_id ←(0..many) public."BillingEvent".registrar_id
registrar_id ←(0..many) public.BillingRecurrence.registrar_idregistrar_id ←(0..many) public."BillingRecurrence".registrar_id
registrar_id ←(0..many) public.Contact.creation_registrar_idregistrar_id ←(0..many) public."Contact".creation_registrar_id
registrar_id ←(0..many) public.Contact.current_sponsor_registrar_idregistrar_id ←(0..many) public."Contact".current_sponsor_registrar_id
registrar_id ←(0..many) public.Contact.last_epp_update_registrar_idregistrar_id ←(0..many) public."Contact".last_epp_update_registrar_id
registrar_id ←(0..many) public.Contact.transfer_gaining_registrar_idregistrar_id ←(0..many) public."Contact".transfer_gaining_registrar_id
registrar_id ←(0..many) public.Contact.transfer_losing_registrar_idregistrar_id ←(0..many) public."Contact".transfer_losing_registrar_id
registrar_id ←(0..many) public.ContactHistory.history_registrar_idregistrar_id ←(0..many) public."ContactHistory".history_registrar_id
registrar_id ←(0..many) public.Domain.creation_registrar_idregistrar_id ←(0..many) public."Domain".creation_registrar_id
registrar_id ←(0..many) public.Domain.current_sponsor_registrar_idregistrar_id ←(0..many) public."Domain".current_sponsor_registrar_id
registrar_id ←(0..many) public.Domain.last_epp_update_registrar_idregistrar_id ←(0..many) public."Domain".last_epp_update_registrar_id
registrar_id ←(0..many) public.Domain.transfer_gaining_registrar_idregistrar_id ←(0..many) public."Domain".transfer_gaining_registrar_id
registrar_id ←(0..many) public.Domain.transfer_losing_registrar_idregistrar_id ←(0..many) public."Domain".transfer_losing_registrar_id
registrar_id ←(0..many) public.DomainHistory.history_registrar_idregistrar_id ←(0..many) public."DomainHistory".history_registrar_id
registrar_id ←(0..many) public.GracePeriod.registrar_idregistrar_id ←(0..many) public."GracePeriod".registrar_id
registrar_id ←(0..many) public.Host.creation_registrar_idregistrar_id ←(0..many) public."Host".creation_registrar_id
registrar_id ←(0..many) public.Host.current_sponsor_registrar_idregistrar_id ←(0..many) public."Host".current_sponsor_registrar_id
registrar_id ←(0..many) public.Host.last_epp_update_registrar_idregistrar_id ←(0..many) public."Host".last_epp_update_registrar_id
registrar_id ←(0..many) public.HostHistory.history_registrar_idregistrar_id ←(0..many) public."HostHistory".history_registrar_id
registrar_id ←(0..many) public.PollMessage.registrar_idregistrar_id ←(0..many) public."PollMessage".registrar_id
registrar_id ←(0..many) public.PollMessage.transfer_response_gaining_registrar_idregistrar_id ←(0..many) public."PollMessage".transfer_response_gaining_registrar_id
registrar_id ←(0..many) public.PollMessage.transfer_response_losing_registrar_idregistrar_id ←(0..many) public."PollMessage".transfer_response_losing_registrar_id
registrar_id ←(0..many) public.RegistrarPoc.registrar_idregistrar_id ←(0..many) public."RegistrarPoc".registrar_id
registrar_id ←(0..many) public.RegistrarUpdateHistory.registrar_idregistrar_id ←(0..many) public."RegistrarUpdateHistory".registrar_id
Registrar_pkey"Registrar_pkey" [unique index]

 

- @@ -11377,7 +11377,7 @@ td.section { - + @@ -11405,7 +11405,7 @@ td.section { - + @@ -11417,12 +11417,12 @@ td.section { - + - + @@ -11447,7 +11447,7 @@ td.section { - + @@ -11464,8 +11464,8 @@ td.section {
- public.RegistrarPoc [table] + + public."RegistrarPoc" [table]
RegistrarPoc_pkey"RegistrarPoc_pkey" [primary key]
registrar_id (0..many)→ public.Registrar.registrar_idregistrar_id (0..many)→ public."Registrar".registrar_id
email_address ←(0..many) public.RegistrarPocUpdateHistory.email_addressemail_address ←(0..many) public."RegistrarPocUpdateHistory".email_address
registrar_id ←(0..many) public.RegistrarPocUpdateHistory.registrar_idregistrar_id ←(0..many) public."RegistrarPocUpdateHistory".registrar_id
RegistrarPoc_pkey"RegistrarPoc_pkey" [unique index]

 

- @@ -11583,7 +11583,7 @@ td.section { - + @@ -11618,12 +11618,12 @@ td.section { - + - + @@ -11636,7 +11636,7 @@ td.section { - + @@ -11684,8 +11684,8 @@ td.section {
- public.RegistrarPocUpdateHistory [table] + + public."RegistrarPocUpdateHistory" [table]
RegistrarPocUpdateHistory_pkey"RegistrarPocUpdateHistory_pkey" [primary key]
email_address (0..many)→ public.RegistrarPoc.email_addressemail_address (0..many)→ public."RegistrarPoc".email_address
registrar_id (0..many)→ public.RegistrarPoc.registrar_idregistrar_id (0..many)→ public."RegistrarPoc".registrar_id
RegistrarPocUpdateHistory_pkey"RegistrarPocUpdateHistory_pkey" [unique index]

 

- @@ -11726,7 +11726,7 @@ td.section { - + @@ -11963,7 +11963,7 @@ td.section { - + @@ -11998,7 +11998,7 @@ td.section { - + @@ -12011,7 +12011,7 @@ td.section { - + @@ -12047,8 +12047,8 @@ td.section {
- public.RegistrarUpdateHistory [table] + + public."RegistrarUpdateHistory" [table]
billing_account_map"hstore"hstore
RegistrarUpdateHistory_pkey"RegistrarUpdateHistory_pkey" [primary key]
registrar_id (0..many)→ public.Registrar.registrar_idregistrar_id (0..many)→ public."Registrar".registrar_id
RegistrarUpdateHistory_pkey"RegistrarUpdateHistory_pkey" [unique index]

 

- @@ -12136,7 +12136,7 @@ td.section { - + @@ -12172,7 +12172,7 @@ td.section { - + @@ -12225,8 +12225,8 @@ td.section {
- public.RegistryLock [table] + + public."RegistryLock" [table]
RegistryLock_pkey"RegistryLock_pkey" [primary key]
RegistryLock_pkey"RegistryLock_pkey" [unique index]

 

- @@ -12259,7 +12259,7 @@ td.section { - + @@ -12287,7 +12287,7 @@ td.section { - + @@ -12300,7 +12300,7 @@ td.section { - + @@ -12317,8 +12317,8 @@ td.section {
- public.ReservedEntry [table] + + public."ReservedEntry" [table]
ReservedEntry_pkey"ReservedEntry_pkey" [primary key]
revision_id (0..many)→ public.ReservedList.revision_idrevision_id (0..many)→ public."ReservedList".revision_id
ReservedEntry_pkey"ReservedEntry_pkey" [unique index]

 

- @@ -12351,7 +12351,7 @@ td.section { - + @@ -12374,7 +12374,7 @@ td.section { - + @@ -12387,7 +12387,7 @@ td.section { - + @@ -12411,8 +12411,8 @@ td.section {
- public.ReservedList [table] + + public."ReservedList" [table]
ReservedList_pkey"ReservedList_pkey" [primary key]
revision_id ←(0..many) public.ReservedEntry.revision_idrevision_id ←(0..many) public."ReservedEntry".revision_id
ReservedList_pkey"ReservedList_pkey" [unique index]

 

- @@ -12435,7 +12435,7 @@ td.section { - + @@ -12453,7 +12453,7 @@ td.section { - + @@ -12465,8 +12465,8 @@ td.section {
- public.ServerSecret [table] + + public."ServerSecret" [table]
ServerSecret_pkey"ServerSecret_pkey" [primary key]
ServerSecret_pkey"ServerSecret_pkey" [unique index]

 

- @@ -12494,7 +12494,7 @@ td.section { - + @@ -12522,7 +12522,7 @@ td.section { - + @@ -12535,7 +12535,7 @@ td.section { - + @@ -12552,8 +12552,8 @@ td.section {
- public.SignedMarkRevocationEntry [table] + + public."SignedMarkRevocationEntry" [table]
SignedMarkRevocationEntry_pkey"SignedMarkRevocationEntry_pkey" [primary key]
revision_id (0..many)→ public.SignedMarkRevocationList.revision_idrevision_id (0..many)→ public."SignedMarkRevocationList".revision_id
SignedMarkRevocationEntry_pkey"SignedMarkRevocationEntry_pkey" [unique index]

 

- @@ -12581,7 +12581,7 @@ td.section { - + @@ -12604,7 +12604,7 @@ td.section { - + @@ -12617,7 +12617,7 @@ td.section { - + @@ -12629,8 +12629,8 @@ td.section {
- public.SignedMarkRevocationList [table] + + public."SignedMarkRevocationList" [table]
SignedMarkRevocationList_pkey"SignedMarkRevocationList_pkey" [primary key]
revision_id ←(0..many) public.SignedMarkRevocationEntry.revision_idrevision_id ←(0..many) public."SignedMarkRevocationEntry".revision_id
SignedMarkRevocationList_pkey"SignedMarkRevocationList_pkey" [unique index]

 

- @@ -12683,7 +12683,7 @@ td.section { - + @@ -12701,7 +12701,7 @@ td.section { - + @@ -12749,8 +12749,8 @@ td.section {
- public.Spec11ThreatMatch [table] + + public."Spec11ThreatMatch" [table]
SafeBrowsingThreat_pkey"SafeBrowsingThreat_pkey" [primary key]
SafeBrowsingThreat_pkey"SafeBrowsingThreat_pkey" [unique index]

 

- @@ -12821,7 +12821,7 @@ td.section { - + @@ -12876,7 +12876,7 @@ td.section { - + @@ -12916,7 +12916,7 @@ td.section { - + @@ -12971,7 +12971,7 @@ td.section { - + @@ -12983,7 +12983,7 @@ td.section { - + @@ -13006,7 +13006,7 @@ td.section { - + @@ -13018,7 +13018,7 @@ td.section { - + @@ -13031,7 +13031,7 @@ td.section { - + @@ -13043,8 +13043,8 @@ td.section {
- public.Tld [table] + + public."Tld" [table]
eap_fee_schedule"hstore" not nullhstore not null
renew_billing_cost_transitions"hstore" not nullhstore not null
tld_state_transitions"hstore" not nullhstore not null
create_billing_cost_transitions"hstore" not nullhstore not null
Tld_pkey"Tld_pkey" [primary key]
tld_name ←(0..many) public.Domain.tldtld_name ←(0..many) public."Domain".tld
tld_name ←(0..many) public.DomainTransactionRecord.tldtld_name ←(0..many) public."DomainTransactionRecord".tld
Tld_pkey"Tld_pkey" [unique index]

 

- @@ -13077,7 +13077,7 @@ td.section { - + @@ -13095,7 +13095,7 @@ td.section { - + @@ -13107,7 +13107,7 @@ td.section {
- public.TmchCrl [table] + + public."TmchCrl" [table]
TmchCrl_pkey"TmchCrl_pkey" [primary key]
TmchCrl_pkey"TmchCrl_pkey" [unique index]

 

- @@ -13149,7 +13149,7 @@ td.section { - + @@ -13171,7 +13171,7 @@ td.section { - + @@ -13194,7 +13194,7 @@ td.section { - + @@ -13206,7 +13206,7 @@ td.section { - + @@ -13218,7 +13218,7 @@ td.section { - + @@ -13230,7 +13230,7 @@ td.section { - + @@ -13242,7 +13242,7 @@ td.section { - + @@ -13255,7 +13255,7 @@ td.section { - + @@ -13291,8 +13291,8 @@ td.section {
+ public."User" [table]
registrar_roles"hstore" not nullhstore not null
User_pkey"User_pkey" [primary key]
email_address ←(0..many) public.ConsoleEppActionHistory.history_acting_useremail_address ←(0..many) public."ConsoleEppActionHistory".history_acting_user
email_address ←(0..many) public.RegistrarPocUpdateHistory.history_acting_useremail_address ←(0..many) public."RegistrarPocUpdateHistory".history_acting_user
email_address ←(0..many) public.RegistrarUpdateHistory.history_acting_useremail_address ←(0..many) public."RegistrarUpdateHistory".history_acting_user
email_address ←(0..many) public.UserUpdateHistory.email_addressemail_address ←(0..many) public."UserUpdateHistory".email_address
email_address ←(0..many) public.UserUpdateHistory.history_acting_useremail_address ←(0..many) public."UserUpdateHistory".history_acting_user
User_pkey"User_pkey" [unique index]

 

- @@ -13358,7 +13358,7 @@ td.section { - + @@ -13385,7 +13385,7 @@ td.section { - + @@ -13433,7 +13433,7 @@ td.section { - + diff --git a/db/src/main/resources/sql/schema/db-schema.sql.generated b/db/src/main/resources/sql/schema/db-schema.sql.generated index 6427ac29e..de04f3480 100644 --- a/db/src/main/resources/sql/schema/db-schema.sql.generated +++ b/db/src/main/resources/sql/schema/db-schema.sql.generated @@ -26,6 +26,8 @@ redemption_domain_repo_id text, redemption_domain_history_id int8, registration_behavior text not null, + renewal_price_amount numeric(19, 2), + renewal_price_currency text, renewal_price_behavior text not null, token_status_transitions hstore, token_type text,
- public.UserUpdateHistory [table] + + public."UserUpdateHistory" [table]
registrar_roles"hstore"hstore
UserUpdateHistory_pkey"UserUpdateHistory_pkey" [primary key]
UserUpdateHistory_pkey"UserUpdateHistory_pkey" [unique index]