dict-server/migrations/models/9_20250802004957_None.py

60 lines
2.6 KiB
Python

from tortoise import BaseDBAsyncClient
async def upgrade(db: BaseDBAsyncClient) -> str:
return """
CREATE TABLE IF NOT EXISTS `language` (
`id` INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
`name` VARCHAR(30) NOT NULL UNIQUE,
`code` VARCHAR(10) NOT NULL UNIQUE
) CHARACTER SET utf8mb4;
CREATE TABLE IF NOT EXISTS `reserved_words` (
`id` INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
`reserved` VARCHAR(20) NOT NULL COMMENT '保留词',
`category` VARCHAR(20) NOT NULL DEFAULT 'username'
) CHARACTER SET utf8mb4;
CREATE TABLE IF NOT EXISTS `users` (
`id` INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
`name` VARCHAR(20) NOT NULL UNIQUE COMMENT '用户名',
`pwd_hashed` VARCHAR(60) NOT NULL COMMENT '密码',
`portrait` VARCHAR(120) NOT NULL COMMENT '用户头像',
`is_admin` BOOL NOT NULL COMMENT '管理员权限' DEFAULT 0,
`language_id` INT NOT NULL,
CONSTRAINT `fk_users_language_d51b5368` FOREIGN KEY (`language_id`) REFERENCES `language` (`id`) ON DELETE CASCADE
) CHARACTER SET utf8mb4;
CREATE TABLE IF NOT EXISTS `wordlist` (
`id` INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
`language` VARCHAR(20) NOT NULL COMMENT '单词语种',
`text` VARCHAR(40) NOT NULL UNIQUE COMMENT '单词'
) CHARACTER SET utf8mb4;
CREATE TABLE IF NOT EXISTS `attachment` (
`id` INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
`yinbiao` VARCHAR(60) COMMENT '音标',
`record` VARCHAR(120) COMMENT '发音',
`pic` VARCHAR(120) COMMENT '配图',
`word_id` INT NOT NULL,
CONSTRAINT `fk_attachme_wordlist_ca554ed9` FOREIGN KEY (`word_id`) REFERENCES `wordlist` (`id`) ON DELETE CASCADE
) CHARACTER SET utf8mb4;
CREATE TABLE IF NOT EXISTS `definitions` (
`id` INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
`part_of_speech` VARCHAR(20) COMMENT '词性',
`meaning` LONGTEXT NOT NULL COMMENT '单词释义',
`example` LONGTEXT COMMENT '单词例句',
`eng_explanation` LONGTEXT COMMENT 'English explanation',
`target_language_id` INT NOT NULL,
`word_id` INT NOT NULL,
CONSTRAINT `fk_definiti_language_9d3d9ce0` FOREIGN KEY (`target_language_id`) REFERENCES `language` (`id`) ON DELETE CASCADE,
CONSTRAINT `fk_definiti_wordlist_551d1753` FOREIGN KEY (`word_id`) REFERENCES `wordlist` (`id`) ON DELETE CASCADE
) CHARACTER SET utf8mb4;
CREATE TABLE IF NOT EXISTS `aerich` (
`id` INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
`version` VARCHAR(255) NOT NULL,
`app` VARCHAR(100) NOT NULL,
`content` JSON NOT NULL
) CHARACTER SET utf8mb4;"""
async def downgrade(db: BaseDBAsyncClient) -> str:
return """
"""