21 lines
668 B
PL/PgSQL
21 lines
668 B
PL/PgSQL
BEGIN;
|
|
SET ROLE identity_role;
|
|
CREATE TABLE IF NOT EXISTS identity.creator_accounts (
|
|
username TEXT PRIMARY KEY,
|
|
actor_id TEXT NOT NULL,
|
|
principal_id TEXT NOT NULL,
|
|
password_hash TEXT NOT NULL,
|
|
revision BIGINT NOT NULL DEFAULT 1,
|
|
password_changed_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
CHECK (username <> ''),
|
|
CHECK (actor_id <> ''),
|
|
CHECK (principal_id <> ''),
|
|
CHECK (password_hash <> ''),
|
|
CHECK (revision > 0),
|
|
UNIQUE (actor_id, principal_id)
|
|
);
|
|
CREATE INDEX IF NOT EXISTS creator_accounts_binding_idx ON identity.creator_accounts (actor_id, principal_id);
|
|
REVOKE ALL ON identity.creator_accounts FROM PUBLIC;
|
|
RESET ROLE;
|
|
COMMIT;
|