From bbfeac408e86bf5880153461ea8cb324b9b6375d Mon Sep 17 00:00:00 2001 From: Iain Collins Date: Fri, 24 Jul 2020 16:00:21 +0100 Subject: [PATCH] Document SQL for MySQL and Postgres These match up exactly with the models generated by TypeORM in v3 and are suitable for use with Prisma. --- test/fixtures/sql/mysql.sql | 74 ++++++++++++++++++++++++++++++++++ test/fixtures/sql/postgres.sql | 74 ++++++++++++++++++++++++++++++++++ 2 files changed, 148 insertions(+) create mode 100644 test/fixtures/sql/mysql.sql create mode 100644 test/fixtures/sql/postgres.sql diff --git a/test/fixtures/sql/mysql.sql b/test/fixtures/sql/mysql.sql new file mode 100644 index 00000000..2fbbdd96 --- /dev/null +++ b/test/fixtures/sql/mysql.sql @@ -0,0 +1,74 @@ +CREATE TABLE accountsshould be + ( + id INT NOT NULL AUTO_INCREMENT, + compound_id VARCHAR(255) NOT NULL, + user_id INTEGER NOT NULL, + provider_type VARCHAR(255) NOT NULL, + provider_id VARCHAR(255) NOT NULL, + provider_account_id VARCHAR(255) NOT NULL, + refresh_token TEXT, + access_token TEXT, + access_token_expires TIMESTAMP(6), + created_at TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6), + updated_at TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6), + PRIMARY KEY (id) + ); + +CREATE TABLE sessions + ( + id INT NOT NULL AUTO_INCREMENT, + user_id INTEGER NOT NULL, + expires TIMESTAMP(6) NOT NULL, + session_token VARCHAR(255) NOT NULL, + access_token VARCHAR(255) NOT NULL, + created_at TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6), + updated_at TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6), + PRIMARY KEY (id) + ); + +CREATE TABLE users + ( + id INT NOT NULL AUTO_INCREMENT, + name VARCHAR(255), + email VARCHAR(255), + email_verified TIMESTAMP(6), + image VARCHAR(255), + created_at TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6), + updated_at TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6), + PRIMARY KEY (id) + ); + +CREATE TABLE verification_requests + ( + id INT NOT NULL AUTO_INCREMENT, + identifier VARCHAR(255) NOT NULL, + token VARCHAR(255) NOT NULL, + expires TIMESTAMP(6) NOT NULL, + created_at TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6), + updated_at TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6), + PRIMARY KEY (id) + ); + +CREATE UNIQUE INDEX compound_id + ON accounts(compound_id); + +CREATE INDEX provider_account_id + ON accounts(provider_account_id); + +CREATE INDEX provider_id + ON accounts(provider_id); + +CREATE INDEX user_id + ON accounts(user_id); + +CREATE UNIQUE INDEX session_token + ON sessions(session_token); + +CREATE UNIQUE INDEX access_token + ON sessions(access_token); + +CREATE UNIQUE INDEX email + ON users(email); + +CREATE UNIQUE INDEX token + ON verification_requests(token); diff --git a/test/fixtures/sql/postgres.sql b/test/fixtures/sql/postgres.sql new file mode 100644 index 00000000..5797db9c --- /dev/null +++ b/test/fixtures/sql/postgres.sql @@ -0,0 +1,74 @@ +CREATE TABLE accounts + ( + id SERIAL, + compound_id VARCHAR(255) NOT NULL, + user_id INTEGER NOT NULL, + provider_type VARCHAR(255) NOT NULL, + provider_id VARCHAR(255) NOT NULL, + provider_account_id VARCHAR(255) NOT NULL, + refresh_token TEXT, + access_token TEXT, + access_token_expires TIMESTAMPTZ, + created_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (id) + ); + +CREATE TABLE sessions + ( + id SERIAL, + user_id INTEGER NOT NULL, + expires TIMESTAMPTZ NOT NULL, + session_token VARCHAR(255) NOT NULL, + access_token VARCHAR(255) NOT NULL, + created_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (id) + ); + +CREATE TABLE users + ( + id SERIAL, + name VARCHAR(255), + email VARCHAR(255), + email_verified TIMESTAMPTZ, + image VARCHAR(255), + created_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (id) + ); + +CREATE TABLE verification_requests + ( + id SERIAL, + identifier VARCHAR(255) NOT NULL, + token VARCHAR(255) NOT NULL, + expires TIMESTAMPTZ NOT NULL, + created_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (id) + ); + +CREATE UNIQUE INDEX compound_id + ON accounts(compound_id); + +CREATE INDEX provider_account_id + ON accounts(provider_account_id); + +CREATE INDEX provider_id + ON accounts(provider_id); + +CREATE INDEX user_id + ON accounts(user_id); + +CREATE UNIQUE INDEX session_token + ON sessions(session_token); + +CREATE UNIQUE INDEX access_token + ON sessions(access_token); + +CREATE UNIQUE INDEX email + ON users(email); + +CREATE UNIQUE INDEX token + ON verification_requests(token);