github.com/icyphox/x@v0.0.355-0.20220311094250-029bd783e8b8/popx/stub/migrations/legacy/20200519101057_create_recovery_addresses.cockroach.up.sql (about) 1 CREATE TABLE "identity_recovery_addresses" ( 2 "id" UUID NOT NULL, 3 PRIMARY KEY("id"), 4 "via" VARCHAR (16) NOT NULL, 5 "value" VARCHAR (400) NOT NULL, 6 "identity_id" UUID NOT NULL, 7 "created_at" timestamp NOT NULL, 8 "updated_at" timestamp NOT NULL, 9 CONSTRAINT "identity_recovery_addresses_identities_id_fk" FOREIGN KEY ("identity_id") REFERENCES "identities" ("id") ON DELETE cascade 10 );COMMIT TRANSACTION;BEGIN TRANSACTION; 11 CREATE UNIQUE INDEX "identity_recovery_addresses_status_via_uq_idx" ON "identity_recovery_addresses" (via, value);COMMIT TRANSACTION;BEGIN TRANSACTION; 12 CREATE INDEX "identity_recovery_addresses_status_via_idx" ON "identity_recovery_addresses" (via, value);COMMIT TRANSACTION;BEGIN TRANSACTION; 13 CREATE TABLE "selfservice_recovery_requests" ( 14 "id" UUID NOT NULL, 15 PRIMARY KEY("id"), 16 "request_url" VARCHAR (2048) NOT NULL, 17 "issued_at" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, 18 "expires_at" timestamp NOT NULL, 19 "messages" json, 20 "active_method" VARCHAR (32), 21 "csrf_token" VARCHAR (255) NOT NULL, 22 "state" VARCHAR (32) NOT NULL, 23 "recovered_identity_id" UUID, 24 "created_at" timestamp NOT NULL, 25 "updated_at" timestamp NOT NULL, 26 CONSTRAINT "selfservice_recovery_requests_identities_id_fk" FOREIGN KEY ("recovered_identity_id") REFERENCES "identities" ("id") ON DELETE cascade 27 );COMMIT TRANSACTION;BEGIN TRANSACTION; 28 CREATE TABLE "selfservice_recovery_request_methods" ( 29 "id" UUID NOT NULL, 30 PRIMARY KEY("id"), 31 "method" VARCHAR (32) NOT NULL, 32 "config" json NOT NULL, 33 "selfservice_recovery_request_id" UUID NOT NULL, 34 "created_at" timestamp NOT NULL, 35 "updated_at" timestamp NOT NULL, 36 CONSTRAINT "selfservice_recovery_request_methods_selfservice_recovery_requests_id_fk" FOREIGN KEY ("selfservice_recovery_request_id") REFERENCES "selfservice_recovery_requests" ("id") ON DELETE cascade 37 );COMMIT TRANSACTION;BEGIN TRANSACTION; 38 CREATE TABLE "identity_recovery_tokens" ( 39 "id" UUID NOT NULL, 40 PRIMARY KEY("id"), 41 "token" VARCHAR (64) NOT NULL, 42 "used" bool NOT NULL DEFAULT 'false', 43 "used_at" timestamp, 44 "identity_recovery_address_id" UUID NOT NULL, 45 "selfservice_recovery_request_id" UUID NOT NULL, 46 "created_at" timestamp NOT NULL, 47 "updated_at" timestamp NOT NULL, 48 CONSTRAINT "identity_recovery_tokens_identity_recovery_addresses_id_fk" FOREIGN KEY ("identity_recovery_address_id") REFERENCES "identity_recovery_addresses" ("id") ON DELETE cascade, 49 CONSTRAINT "identity_recovery_tokens_selfservice_recovery_requests_id_fk" FOREIGN KEY ("selfservice_recovery_request_id") REFERENCES "selfservice_recovery_requests" ("id") ON DELETE cascade 50 );COMMIT TRANSACTION;BEGIN TRANSACTION; 51 CREATE UNIQUE INDEX "identity_recovery_addresses_code_uq_idx" ON "identity_recovery_tokens" (token);COMMIT TRANSACTION;BEGIN TRANSACTION; 52 CREATE INDEX "identity_recovery_addresses_code_idx" ON "identity_recovery_tokens" (token);COMMIT TRANSACTION;BEGIN TRANSACTION;