-- CreateTable CREATE TABLE `KVStore` ( `deviceId` INTEGER NOT NULL, `key` VARCHAR(191) NOT NULL, `value` JSON NOT NULL, `creatorIp` VARCHAR(191) NULL DEFAULT '', `createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), `updatedAt` DATETIME(3) NOT NULL, PRIMARY KEY (`deviceId`, `key`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `Account` ( `id` VARCHAR(191) NOT NULL, `provider` VARCHAR(191) NOT NULL, `providerId` VARCHAR(191) NOT NULL, `email` VARCHAR(191) NULL, `name` VARCHAR(191) NULL, `avatarUrl` VARCHAR(191) NULL, `providerData` JSON NULL, `accessToken` VARCHAR(191) NOT NULL, `refreshToken` VARCHAR(191) NULL, `createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), `updatedAt` DATETIME(3) NOT NULL, UNIQUE INDEX `Account_accessToken_key`(`accessToken`), UNIQUE INDEX `Account_provider_providerId_key`(`provider`, `providerId`), PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `Device` ( `id` INTEGER NOT NULL AUTO_INCREMENT, `uuid` VARCHAR(191) NOT NULL, `name` VARCHAR(191) NULL, `accountId` VARCHAR(191) NULL, `createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), `updatedAt` DATETIME(3) NOT NULL, `password` VARCHAR(191) NULL, `passwordHint` VARCHAR(191) NULL, UNIQUE INDEX `Device_uuid_key`(`uuid`), PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `AppInstall` ( `id` VARCHAR(191) NOT NULL, `deviceId` INTEGER NOT NULL, `appId` VARCHAR(191) NOT NULL, `token` VARCHAR(191) NOT NULL, `note` VARCHAR(191) NULL, `installedAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), `updatedAt` DATETIME(3) NOT NULL, UNIQUE INDEX `AppInstall_token_key`(`token`), PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- AddForeignKey ALTER TABLE `KVStore` ADD CONSTRAINT `KVStore_deviceId_fkey` FOREIGN KEY (`deviceId`) REFERENCES `Device`(`id`) ON DELETE CASCADE ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE `Device` ADD CONSTRAINT `Device_accountId_fkey` FOREIGN KEY (`accountId`) REFERENCES `Account`(`id`) ON DELETE SET NULL ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE `AppInstall` ADD CONSTRAINT `AppInstall_deviceId_fkey` FOREIGN KEY (`deviceId`) REFERENCES `Device`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;