# 从数据库生成模型类 sqlacodegen sqlite:////root/sharedata/sqlite/shared.db > models/shared.py sqlacodegen sqlite:////root/sharedata/sqlite/scrapy.db > models/scrapy.py # 初始化 alembic init migrations/shared_comm alembic init migrations/scrapy alembic init migrations/testdb # 同步修改到数据库(读取 models/shared.py ) ./scripts/sync_shared_comm.sh ./scripts/reset_testdb.sh ### 对视图支持不好,主要是视图的字段没有类型,所以在导入导出时会出错,慎用! ------------------------- 清理掉无法处理的字段 -------------------- PRAGMA foreign_keys = OFF; -- 禁用外键检查 -- 检查字段是否已删除 PRAGMA table_info(javdb_series); -- 应看不到parent_id字段 -- 验证数据完整性 SELECT COUNT(*), MIN(id), MAX(id) FROM javdb_series; -- 数量应与操作前一致 -- 5. 处理 javdb_series 表 CREATE TABLE "javdb_series_new" ( `id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, `name` VARCHAR(255) NOT NULL, `href` VARCHAR(255) UNIQUE, `created_at` TEXT DEFAULT (datetime('now', 'localtime')), `updated_at` TEXT DEFAULT (datetime('now', 'localtime')), `details` TEXT, from_list INTEGER DEFAULT (0), from_movie_list INTEGER DEFAULT (0) ); INSERT INTO javdb_series_new (id, name, href, created_at, updated_at, details, from_list, from_movie_list) SELECT id, name, href, created_at, updated_at, details, from_list, from_movie_list FROM javdb_series; DROP TABLE javdb_series; ALTER TABLE javdb_series_new RENAME TO javdb_series; -- 检查字段是否已删除 PRAGMA table_info(javdb_series); -- 应看不到parent_id字段 -- 验证数据完整性 SELECT COUNT(*), MIN(id), MAX(id) FROM javdb_series; -- 数量应与操作前一致 PRAGMA foreign_keys = ON; -- 恢复外键检查