-- 同 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;