Files
photo-live/packages/db-cn/prisma/migrations/20260917120158_album_domain/migration.sql
T
浅念 a99b8f200b feat(api): album domain schema
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-17 20:05:09 +08:00

93 lines
3.4 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- 同 20260917114313_init_identity:Prisma 生成的 MySQL DDL 固定写
-- utf8mb4_unicode_ci,会覆盖库级 utf8mb4_0900_bin;相册域(publicToken、
-- locale 键、objectKey)同样依赖 bin 校对的大小写敏感语义,故逐表改写为
-- utf8mb4_0900_bin。
-- CreateTable
CREATE TABLE `albums` (
`id` VARCHAR(191) NOT NULL,
`publicToken` VARCHAR(32) NOT NULL,
`ownerId` VARCHAR(64) NOT NULL,
`startAt` DATETIME(6) NOT NULL,
`endAt` DATETIME(6) NULL,
`timezone` VARCHAR(64) NOT NULL DEFAULT 'Asia/Shanghai',
`status` VARCHAR(191) NOT NULL DEFAULT 'active',
`defaultLocale` VARCHAR(16) NOT NULL,
`uploadEnabled` BOOLEAN NOT NULL DEFAULT true,
`publicEnabled` BOOLEAN NOT NULL DEFAULT true,
`downloadEnabled` BOOLEAN NOT NULL DEFAULT true,
`originalDownloadEnabled` BOOLEAN NOT NULL DEFAULT false,
`watermarkVersion` INTEGER NOT NULL DEFAULT 0,
`createdAt` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
`updatedAt` DATETIME(6) NOT NULL,
UNIQUE INDEX `albums_publicToken_key`(`publicToken`),
INDEX `albums_ownerId_idx`(`ownerId`),
INDEX `albums_status_publicEnabled_idx`(`status`, `publicEnabled`),
PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_bin;
-- CreateTable
CREATE TABLE `album_translations` (
`id` VARCHAR(191) NOT NULL,
`albumId` VARCHAR(64) NOT NULL,
`locale` VARCHAR(16) NOT NULL,
`title` VARCHAR(255) NOT NULL,
`description` TEXT NULL,
`venue` VARCHAR(255) NULL,
`address` VARCHAR(255) NULL,
INDEX `album_translations_albumId_idx`(`albumId`),
UNIQUE INDEX `album_translations_albumId_locale_key`(`albumId`, `locale`),
PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_bin;
-- CreateTable
CREATE TABLE `album_members` (
`id` VARCHAR(191) NOT NULL,
`albumId` VARCHAR(64) NOT NULL,
`userId` VARCHAR(64) NOT NULL,
`role` VARCHAR(191) NOT NULL DEFAULT 'collaborator',
`status` VARCHAR(191) NOT NULL DEFAULT 'active',
`addedAt` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
INDEX `album_members_userId_idx`(`userId`),
UNIQUE INDEX `album_members_albumId_userId_key`(`albumId`, `userId`),
PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_bin;
-- CreateTable
CREATE TABLE `categories` (
`id` VARCHAR(191) NOT NULL,
`albumId` VARCHAR(64) NOT NULL,
`sortOrder` INTEGER NOT NULL DEFAULT 0,
`createdAt` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
INDEX `categories_albumId_sortOrder_idx`(`albumId`, `sortOrder`),
PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_bin;
-- CreateTable
CREATE TABLE `category_translations` (
`id` VARCHAR(191) NOT NULL,
`categoryId` VARCHAR(64) NOT NULL,
`locale` VARCHAR(16) NOT NULL,
`name` VARCHAR(128) NOT NULL,
UNIQUE INDEX `category_translations_categoryId_locale_key`(`categoryId`, `locale`),
PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_bin;
-- CreateTable
CREATE TABLE `album_assets` (
`id` VARCHAR(191) NOT NULL,
`albumId` VARCHAR(64) NOT NULL,
`kind` VARCHAR(16) NOT NULL,
`locale` VARCHAR(16) NULL,
`objectKey` VARCHAR(255) NOT NULL,
`createdAt` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
INDEX `album_assets_albumId_kind_idx`(`albumId`, `kind`),
PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_bin;