23 lines
1.0 KiB
SQL
23 lines
1.0 KiB
SQL
-- S09 login authentication session table.
|
|
-- Forward-only additive migration: no existing table or column is modified.
|
|
|
|
CREATE TABLE `user_sessions` (
|
|
`id` VARCHAR(40) NOT NULL,
|
|
`user_id` VARCHAR(32) NOT NULL,
|
|
`refresh_token_hash` CHAR(64) NOT NULL,
|
|
`user_agent` VARCHAR(500) NULL,
|
|
`ip` VARCHAR(45) NULL,
|
|
`expires_at` DATETIME(3) NOT NULL,
|
|
`revoked_at` DATETIME(3) NULL,
|
|
`rotated_from_id` VARCHAR(40) NULL,
|
|
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
`updated_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
|
|
|
|
PRIMARY KEY (`id`),
|
|
UNIQUE INDEX `user_sessions_refresh_token_hash_key` (`refresh_token_hash`),
|
|
INDEX `user_sessions_user_id_created_at_idx` (`user_id`, `created_at`),
|
|
INDEX `user_sessions_expires_at_idx` (`expires_at`),
|
|
INDEX `user_sessions_revoked_at_idx` (`revoked_at`),
|
|
CONSTRAINT `user_sessions_user_id_fkey` FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE CASCADE ON UPDATE CASCADE
|
|
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|