mirror of
https://github.com/sonr-io/sonr.git
synced 2026-08-02 17:31:39 +00:00
34 lines
1.1 KiB
SQL
34 lines
1.1 KiB
SQL
-- +goose Up
|
|
-- +goose StatementBegin
|
|
-- Vaults store encrypted data
|
|
CREATE TABLE vaults (
|
|
id TEXT PRIMARY KEY,
|
|
created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
deleted_at TIMESTAMP WITH TIME ZONE,
|
|
handle TEXT NOT NULL,
|
|
origin TEXT NOT NULL,
|
|
address TEXT NOT NULL,
|
|
cid TEXT NOT NULL,
|
|
config JSONB NOT NULL,
|
|
session_id TEXT NOT NULL,
|
|
redirect_uri TEXT NOT NULL
|
|
);
|
|
|
|
-- Unique constraints
|
|
CREATE UNIQUE INDEX idx_vaults_cid_unique ON vaults(cid) WHERE deleted_at IS NULL;
|
|
CREATE UNIQUE INDEX idx_vaults_handle_origin_address_unique ON vaults(handle, origin, address) WHERE deleted_at IS NULL;
|
|
|
|
-- Regular indexes for query performance
|
|
CREATE INDEX idx_vaults_handle ON vaults(handle);
|
|
CREATE INDEX idx_vaults_origin ON vaults(origin);
|
|
CREATE INDEX idx_vaults_address ON vaults(address);
|
|
CREATE INDEX idx_vaults_session_id ON vaults(session_id);
|
|
CREATE INDEX idx_vaults_deleted_at ON vaults(deleted_at) WHERE deleted_at IS NOT NULL;
|
|
-- +goose StatementEnd
|
|
|
|
-- +goose Down
|
|
-- +goose StatementBegin
|
|
DROP TABLE vaults;
|
|
-- +goose StatementEnd
|