Files
qvyun/backend/database/migrations/20250109084432_create_users.sql
2025-01-09 19:11:01 +08:00

54 lines
1.7 KiB
SQL

-- +goose Up
-- +goose StatementBegin
CREATE TABLE
users (
id SERIAL8 PRIMARY KEY,
created_at timestamp NOT NULL default now(),
updated_at timestamp NOT NULL default now(),
deleted_at timestamp,
status INT2 NOT NULL default 0,
email VARCHAR(128) NOT NULL UNIQUE,
phone VARCHAR(32) NOT NULL UNIQUE,
username VARCHAR(128) NOT NULL UNIQUE,
nickname VARCHAR(128) ,
password VARCHAR(128) NOT NULL,
age INT2 NOT NULL default 0,
sex INT2 NOT NULL default 0,
avatar VARCHAR(128)
);
-- index on email phone username
CREATE INDEX idx_users_email ON users(email);
CREATE INDEX idx_users_phone ON users(phone);
CREATE INDEX idx_users_username ON users(username);
CREATE TABLE
user_oauths (
id SERIAL8 PRIMARY KEY,
created_at timestamp NOT NULL default now(),
updated_at timestamp NOT NULL default now(),
deleted_at timestamp,
channel INT2 NOT NULL,
user_id INT8 NOT NULL,
union_id VARCHAR(128),
open_id VARCHAR(128) NOT NULL UNIQUE,
access_key VARCHAR(256) NOT NULL default '',
access_token VARCHAR(256) NOT NULL default '',
refresh_token VARCHAR(256) NOT NULL default '',
expire_at timestamp NOT NULL,
meta jsonb default '{}'::jsonb
);
-- index on channel user_id open_id
CREATE INDEX idx_user_oauths_channel ON user_oauths(channel);
CREATE INDEX idx_user_oauths_user_id ON user_oauths(user_id);
CREATE INDEX idx_user_oauths_open_id ON user_oauths(open_id);
-- +goose StatementEnd
-- +goose Down
-- +goose StatementBegin
DROP TABLE users;
DROP TABLE user_oauths;
-- +goose StatementEnd