Supabase URL: https://wougxresvegbvnikotcx.supabase.co
Status: โ Connected
-- Create the update timestamp function
CREATE OR REPLACE FUNCTION update_updated_at_column()
RETURNS TRIGGER AS $$
BEGIN
NEW.updated_at = NOW();
RETURN NEW;
END;
$$ language 'plpgsql';
-- Create projects table
CREATE TABLE IF NOT EXISTS projects (
id BIGSERIAL PRIMARY KEY,
name VARCHAR(255) NOT NULL,
description TEXT,
type VARCHAR(20) DEFAULT 'web' CHECK (type IN ('web', 'mobile', 'analysis')),
created_at TIMESTAMPTZ DEFAULT NOW(),
updated_at TIMESTAMPTZ DEFAULT NOW(),
user_id BIGINT DEFAULT 1
);
-- Create data_sources table
CREATE TABLE IF NOT EXISTS data_sources (
id BIGSERIAL PRIMARY KEY,
project_id BIGINT REFERENCES projects(id) ON DELETE CASCADE,
name VARCHAR(255) NOT NULL,
filename VARCHAR(255) NOT NULL,
type VARCHAR(50) NOT NULL,
size BIGINT NOT NULL,
uploaded_at TIMESTAMPTZ DEFAULT NOW()
);
-- Create styles table
CREATE TABLE IF NOT EXISTS styles (
id BIGSERIAL PRIMARY KEY,
project_id BIGINT REFERENCES projects(id) ON DELETE CASCADE,
name VARCHAR(255) NOT NULL,
style_json TEXT NOT NULL,
created_at TIMESTAMPTZ DEFAULT NOW(),
updated_at TIMESTAMPTZ DEFAULT NOW()
);
-- Create users table
CREATE TABLE IF NOT EXISTS users (
id BIGSERIAL PRIMARY KEY,
username VARCHAR(100) UNIQUE NOT NULL,
email VARCHAR(255) UNIQUE NOT NULL,
password_hash VARCHAR(255),
full_name VARCHAR(255),
is_active BOOLEAN DEFAULT true,
created_at TIMESTAMPTZ DEFAULT NOW(),
updated_at TIMESTAMPTZ DEFAULT NOW()
);
-- Create triggers for updated_at columns
CREATE TRIGGER update_projects_updated_at
BEFORE UPDATE ON projects
FOR EACH ROW
EXECUTE FUNCTION update_updated_at_column();
CREATE TRIGGER update_styles_updated_at
BEFORE UPDATE ON styles
FOR EACH ROW
EXECUTE FUNCTION update_updated_at_column();
CREATE TRIGGER update_users_updated_at
BEFORE UPDATE ON users
FOR EACH ROW
EXECUTE FUNCTION update_updated_at_column();
-- Create indexes for better performance
CREATE INDEX IF NOT EXISTS idx_projects_user_id ON projects(user_id);
CREATE INDEX IF NOT EXISTS idx_projects_type ON projects(type);
CREATE INDEX IF NOT EXISTS idx_data_sources_project_id ON data_sources(project_id);
CREATE INDEX IF NOT EXISTS idx_styles_project_id ON styles(project_id);
CREATE INDEX IF NOT EXISTS idx_users_username ON users(username);
CREATE INDEX IF NOT EXISTS idx_users_email ON users(email);
-- Insert sample data
INSERT INTO users (username, email, full_name) VALUES
('admin', 'admin@example.com', 'Administrator')
ON CONFLICT (username) DO NOTHING;
INSERT INTO projects (name, description, type, user_id) VALUES
('Sample Web Project', 'A sample web mapping project', 'web', 1),
('Mobile App Project', 'A sample mobile mapping project', 'mobile', 1)
ON CONFLICT DO NOTHING;1. Supabase SQL Editor: Open SQL Editor
2. Test API after setup: Test Connection
3. View examples: Run Examples
Error: cURL Error: Could not resolve host: wougxresvegbvnikotcx.supabase.co
Next Step: Copy the SQL above and run it in your Supabase SQL Editor.