Skip to content

Commit

Permalink
Merge pull request #27 from takumi-pro/feature/bookmark-api
Browse files Browse the repository at this point in the history
feature: migration
  • Loading branch information
takumi-pro authored Feb 9, 2024
2 parents ed334aa + 72f19e8 commit a066b9c
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 10 deletions.
1 change: 1 addition & 0 deletions go.work.sum
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,6 @@ github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjY
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c=
github.com/ugorji/go/codec v1.2.11/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg=
google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
62 changes: 52 additions & 10 deletions migrations/20231218194631-init.sql
Original file line number Diff line number Diff line change
@@ -1,14 +1,53 @@

-- +migrate Up
CREATE TABLE `users` (
`id` INT PRIMARY KEY AUTO_INCREMENT,
`name` varchar(255) NOT NULL COMMENT 'ユーザ名',
`email` varchar(255) NOT NULL COMMENT 'メールアドレス',
`firebase_uid` varchar(255) NOT NULL COMMENT 'Firebaseが持っているID',
`image` varchar(255) NOT NULL COMMENT '表示用写真URL',
`id` VARCHAR(255) NOT NULL COMMENT 'ユーザ識別子',
`name` VARCHAR(255) COMMENT 'ユーザ名',
`email` VARCHAR(255) NOT NULL COMMENT 'メールアドレス',
`emailVerified` DATETIME(6) COMMENT 'メールアドレスの認証日時',
`image` VARCHAR(255) COMMENT '表示用写真URL',
`created_at` timestamp,
`updated_at` timestamp
);
`updated_at` timestamp,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_email` (`email`)
) COMMENT 'Auth.jsでユーザの識別子を管理するテーブル';

CREATE TABLE `accounts` (
`userId` varchar(255) NOT NULL COMMENT 'userテーブルのid、ユーザーの識別子',
`type` varchar(255) NOT NULL COMMENT 'oauth等の値が入る',
`provider` varchar(255) NOT NULL COMMENT 'google, line等の認証Providerの名称が入る',
`providerAccountId` varchar(255) NOT NULL COMMENT 'google, line等の認証Providerのユーザー識別子が入る',
`refresh_token` text COMMENT '認証Providerから取得したリフレッシュトークンが記録される',
`access_token` text COMMENT '認証Providerから取得したアクセストークンが記録される',
`expires_at` int DEFAULT NULL COMMENT '認証Providerから取得したアクセストークンの有効期限',
`token_type` varchar(255) DEFAULT NULL COMMENT 'Bearer等のトークン種別が記録される',
`scope` varchar(255) DEFAULT NULL COMMENT 'リクエスト時に認証Providerに要求したscopeが記録される',
`id_token` text COMMENT '認証Providerから取得したIDトークンの有効期限',
`session_state` varchar(255) DEFAULT NULL,
`created_at` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
`updated_at` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
PRIMARY KEY (`provider`,`providerAccountId`),
UNIQUE KEY `uk_account_userid` (`userId`),
KEY `idx_account_01` (`userId`)
) COMMENT 'Auth.jsでユーザの認証情報を管理するテーブル';

CREATE TABLE `sessions` (
`sessionToken` varchar(255) NOT NULL COMMENT 'セッションの識別子が格納される',
`userId` varchar(255) NOT NULL COMMENT 'userテーブルのid、ユーザーの識別子',
`expires` timestamp NOT NULL COMMENT 'セッションの有効期限が格納される',
`created_at` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
`updated_at` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
PRIMARY KEY (`sessionToken`),
UNIQUE KEY `uk_session_userid` (`userId`),
KEY `idx_session_01` (`userId`)
) COMMENT 'Auth.jsでユーザーのセッションを管理するテーブル session.strategyがdatabaseの時だけ利用される';

CREATE TABLE `verificationtokens` (
`identifier` varchar(255) NOT NULL,
`token` varchar(255) NOT NULL,
`expires` timestamp NOT NULL,
PRIMARY KEY (`identifier`,`token`)
) COMMENT 'Auth.jsでメールアドレスを使ったパスワードレスログインを利用する時に利用される';

CREATE TABLE `events` (
`event_id` INT PRIMARY KEY NOT NULL COMMENT 'イベントID',
Expand All @@ -31,7 +70,7 @@ CREATE TABLE `events` (
`address` VARCHAR(255) COMMENT '開催住所',
`lat` VARCHAR(255) NOT NULL COMMENT '緯度',
`lon` VARCHAR(255) NOT NULL COMMENT '経度'
);
) COMMENT 'イベント情報を管理するテーブル';

CREATE TABLE `bookmarked_events` (
`event_id` INT PRIMARY KEY NOT NULL COMMENT 'イベントID',
Expand All @@ -54,17 +93,20 @@ CREATE TABLE `bookmarked_events` (
`address` VARCHAR(255) COMMENT '開催住所',
`lat` VARCHAR(255) NOT NULL COMMENT '緯度',
`lon` VARCHAR(255) NOT NULL COMMENT '経度'
);
) COMMENT 'ブックマークされたイベントを管理するテーブル';

CREATE TABLE `bookmarks` (
`event_id` INT COMMENT 'イベントID',
`user_id` INT COMMENT 'ユーザID',
PRIMARY KEY (`event_id`, `user_id`)
);
) COMMENT 'ユーザとユーザがブックマークしたイベントを紐づけるテーブル';


-- +migrate Down
DROP TABLE IF EXISTS users;
DROP TABLE IF EXISTS accounts;
DROP TABLE IF EXISTS sessions;
DROP TABLE IF EXISTS verificationtokens;
DROP TABLE IF EXISTS events;
DROP TABLE IF EXISTS bookmarked_events;
DROP TABLE IF EXISTS bookmarks;

0 comments on commit a066b9c

Please sign in to comment.