summaryrefslogtreecommitdiff
path: root/makima/migrations/20250110000001_create_users_table.sql
diff options
context:
space:
mode:
authorsoryu <soryu@soryu.co>2026-01-06 04:08:11 +0000
committersoryu <soryu@soryu.co>2026-01-11 03:01:13 +0000
commit8b17a175c3e7e27b789812eba4e3cd760beadb10 (patch)
tree7864dcaa2fa9db47fdfd4e8bfdb0b1dde832aa33 /makima/migrations/20250110000001_create_users_table.sql
parentf79c416c58557d2f946aa5332989afdfa8c021cd (diff)
downloadsoryu-8b17a175c3e7e27b789812eba4e3cd760beadb10.tar.gz
soryu-8b17a175c3e7e27b789812eba4e3cd760beadb10.zip
Initial Control system
Diffstat (limited to 'makima/migrations/20250110000001_create_users_table.sql')
-rw-r--r--makima/migrations/20250110000001_create_users_table.sql27
1 files changed, 27 insertions, 0 deletions
diff --git a/makima/migrations/20250110000001_create_users_table.sql b/makima/migrations/20250110000001_create_users_table.sql
new file mode 100644
index 0000000..cb82807
--- /dev/null
+++ b/makima/migrations/20250110000001_create_users_table.sql
@@ -0,0 +1,27 @@
+-- Create users table as local mirror of Supabase auth.users
+-- This allows faster queries and storing additional user metadata
+
+CREATE TABLE IF NOT EXISTS users (
+ -- Matches Supabase auth.users(id)
+ id UUID PRIMARY KEY,
+ email VARCHAR(255) NOT NULL,
+ display_name VARCHAR(255),
+ avatar_url TEXT,
+ -- User's personal owner (created on signup)
+ default_owner_id UUID REFERENCES owners(id),
+ created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
+ updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
+);
+
+CREATE UNIQUE INDEX idx_users_email ON users(email);
+CREATE INDEX idx_users_default_owner_id ON users(default_owner_id);
+
+-- Trigger to update updated_at timestamp (reuse existing function)
+CREATE TRIGGER update_users_updated_at
+ BEFORE UPDATE ON users
+ FOR EACH ROW
+ EXECUTE FUNCTION update_updated_at_column();
+
+COMMENT ON TABLE users IS 'Local mirror of Supabase auth.users with additional metadata';
+COMMENT ON COLUMN users.id IS 'Matches Supabase auth.users(id) - set by trigger on signup';
+COMMENT ON COLUMN users.default_owner_id IS 'User personal owner, created automatically on signup';