You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

执行Django迁移后MySQL未生成books表的问题咨询

问题原因

你模型里的Meta类设置了managed = False,这个配置会告诉Django不要自动创建或维护该数据库表,所以哪怕执行了migrate命令,Django也不会帮你生成books表。

解决方法

方法一:让Django自动管理表(推荐)

  1. 修改models.py中的Meta类,把managed = False改成managed = True:
    class Meta:
        managed = True
        db_table = 'books'
    
  2. 删除bookList/migrations/目录下的0001_initial.py文件
  3. 重新生成迁移文件:
    python manage.py makemigrations bookList
    
  4. 执行迁移创建表:
    python manage.py migrate bookList
    
    完成后去MySQL里就能看到books表了。

方法二:手动创建表(保留managed=False)

如果需要保持managed=False(比如表结构需要手动控制),得自己在MySQL里手动创建对应表:

  1. 登录MySQL,切换到你的Django项目数据库
  2. 执行以下SQL语句创建books表(字段要和模型完全对应):
    CREATE TABLE books (
        id BIGINT AUTO_INCREMENT PRIMARY KEY,
        site_name TEXT NOT NULL,
        site_id TEXT NOT NULL,
        image TEXT NOT NULL,
        book TEXT NOT NULL,
        author TEXT NOT NULL,
        publisher TEXT NOT NULL,
        price TEXT NOT NULL,
        link TEXT NOT NULL,
        category_name TEXT NOT NULL,
        category_id TEXT NOT NULL
    );
    
    执行完后,Django就能正常和这个表交互了,但后续表结构变更都需要手动修改SQL。

内容的提问来源于stack exchange,提问作者océane

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 05:10:38