maksit-certs-ui/src/MaksIT.CertsUI.Engine/FluentMigrations/20260427123000_TermsOfServiceCache.cs
2026-04-27 18:48:12 +02:00

28 lines
1.2 KiB
C#

using FluentMigrator;
namespace MaksIT.CertsUI.Engine.FluentMigrations;
[Migration(20260427123000)]
public class TermsOfServiceCache : Migration {
public override void Up() {
Create.Table("terms_of_service_cache")
.WithColumn("url").AsCustom("text").NotNullable().PrimaryKey()
.WithColumn("url_hash_hex").AsCustom("text").NotNullable()
.WithColumn("etag").AsCustom("text").Nullable()
.WithColumn("last_modified_utc").AsDateTimeOffset().Nullable()
.WithColumn("content_type").AsCustom("text").NotNullable()
.WithColumn("content_bytes").AsCustom("bytea").NotNullable()
.WithColumn("fetched_at_utc").AsDateTimeOffset().NotNullable()
.WithColumn("expires_at_utc").AsDateTimeOffset().NotNullable();
Create.Index("IX_terms_of_service_cache_url_hash_hex").OnTable("terms_of_service_cache").OnColumn("url_hash_hex");
Create.Index("IX_terms_of_service_cache_expires_at_utc").OnTable("terms_of_service_cache").OnColumn("expires_at_utc");
}
public override void Down() {
Delete.Index("IX_terms_of_service_cache_url_hash_hex").OnTable("terms_of_service_cache");
Delete.Index("IX_terms_of_service_cache_expires_at_utc").OnTable("terms_of_service_cache");
Delete.Table("terms_of_service_cache");
}
}