SQL

CREATE TABLE "invitations"  (
  id TEXT PRIMARY KEY,
  organisation_id TEXT NOT NULL,
  email TEXT NOT NULL,
  token TEXT UNIQUE NOT NULL,
  role TEXT DEFAULT 'member',
  invited_by TEXT,
  expires_at DATETIME NOT NULL,
  accepted_at DATETIME,
  status TEXT DEFAULT 'pending' CHECK(status IN ('pending', 'sent', 'failed', 'accepted', 'expired')),
  created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
  FOREIGN KEY (organisation_id) REFERENCES organisations(id) ON DELETE CASCADE,
  FOREIGN KEY (invited_by) REFERENCES users(id) ON DELETE SET NULL
)

+ Add column

Columns

Column Data type Allow null Primary key Actions
id TEXT Rename | Drop
organisation_id TEXT Rename | Drop
email TEXT Rename | Drop
token TEXT Rename | Drop
role TEXT Rename | Drop
invited_by TEXT Rename | Drop
expires_at DATETIME Rename | Drop
accepted_at DATETIME Rename | Drop
status TEXT Rename | Drop
created_at DATETIME Rename | Drop

Foreign Keys

Column Destination
invited_by users.id
organisation_id organisations.id

+ Add index

Indexes

Name Columns Unique SQL Drop?
idx_invitations_email email SQL
CREATE INDEX idx_invitations_email
ON invitations(email)
Drop
idx_invitations_organisation_id organisation_id SQL
CREATE INDEX idx_invitations_organisation_id
ON invitations(organisation_id)
Drop
idx_invitations_status status SQL
CREATE INDEX idx_invitations_status
ON invitations(status)
Drop
idx_invitations_token token SQL
CREATE UNIQUE INDEX idx_invitations_token
ON invitations(token)
Drop
sqlite_autoindex_invitations_1 id SQL
-- no sql found --
Drop
sqlite_autoindex_invitations_2 token SQL
-- no sql found --
Drop