|
| 1 | +from tortoise import BaseDBAsyncClient |
| 2 | + |
| 3 | + |
| 4 | +async def upgrade(db: BaseDBAsyncClient) -> str: |
| 5 | + return """ |
| 6 | + CREATE TABLE IF NOT EXISTS `genres` ( |
| 7 | + `id` BIGINT NOT NULL PRIMARY KEY AUTO_INCREMENT, |
| 8 | + `created_at` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6), |
| 9 | + `external_id` INT NOT NULL UNIQUE, |
| 10 | + `name` VARCHAR(255) NOT NULL |
| 11 | +) CHARACTER SET utf8mb4; |
| 12 | + ALTER TABLE `movies` ADD `release_date` DATETIME(6) NOT NULL; |
| 13 | + ALTER TABLE `movies` RENAME COLUMN `plot` TO `overview`; |
| 14 | + ALTER TABLE `movies` RENAME COLUMN `playtime` TO `runtime`; |
| 15 | + ALTER TABLE `movies` ADD `external_id` INT NOT NULL UNIQUE; |
| 16 | + ALTER TABLE `movies` DROP COLUMN `genre`; |
| 17 | + ALTER TABLE `movies` MODIFY COLUMN `cast` VARCHAR(255) NOT NULL; |
| 18 | + CREATE TABLE IF NOT EXISTS `movie_genres` ( |
| 19 | + `id` BIGINT NOT NULL PRIMARY KEY AUTO_INCREMENT, |
| 20 | + `created_at` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6), |
| 21 | + `genre_id` BIGINT NOT NULL, |
| 22 | + `movie_id` BIGINT NOT NULL, |
| 23 | + CONSTRAINT `fk_movie_ge_genres_c7d0356e` FOREIGN KEY (`genre_id`) REFERENCES `genres` (`id`) ON DELETE CASCADE, |
| 24 | + CONSTRAINT `fk_movie_ge_movies_014c0d12` FOREIGN KEY (`movie_id`) REFERENCES `movies` (`id`) ON DELETE CASCADE |
| 25 | +) CHARACTER SET utf8mb4;""" |
| 26 | + |
| 27 | + |
| 28 | +async def downgrade(db: BaseDBAsyncClient) -> str: |
| 29 | + return """ |
| 30 | + ALTER TABLE `movies` ADD `genre` VARCHAR(9) NOT NULL COMMENT 'SF: SF\nADVENTURE: Adventure\nROMANCE: Romance\nCOMIC: Comic\nFANTASY: Fantasy\nSCIENCE: Science\nMYSTERY: Mystery\nACTION: Action\nHORROR: Horror'; |
| 31 | + ALTER TABLE `movies` RENAME COLUMN `runtime` TO `playtime`; |
| 32 | + ALTER TABLE `movies` RENAME COLUMN `overview` TO `plot`; |
| 33 | + ALTER TABLE `movies` DROP COLUMN `release_date`; |
| 34 | + ALTER TABLE `movies` DROP COLUMN `external_id`; |
| 35 | + ALTER TABLE `movies` MODIFY COLUMN `cast` JSON NOT NULL; |
| 36 | + DROP TABLE IF EXISTS `movie_genres`; |
| 37 | + DROP TABLE IF EXISTS `genres`;""" |
0 commit comments