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

Django教程执行migrate无报错,但SQLite3中无表显示

Django migrate成功但SQLite看不到数据表的排查方案
  • 确认连接的是正确的数据库文件
    执行sqlite3命令时如果不指定路径,默认会打开当前终端目录下的db.sqlite3。如果你的db.sqlite3在django_test目录里,但你是在其他目录启动的sqlite3,自然看不到表。解决方式:要么先cd到django_test目录再执行sqlite3 db.sqlite3,要么直接指定完整路径,比如sqlite3 django_test/db.sqlite3。

  • 检查DATABASES配置路径是否正确
    打开项目的settings.py,查看DATABASES配置块,确认NAME指向的是django_test目录下的db.sqlite3。正常配置如下:

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.sqlite3',
            'NAME': BASE_DIR / 'db.sqlite3',
        }
    }
    

    不确定路径是否正确的话,直接在终端执行python manage.py shell,然后输入以下代码查看实际数据库路径:

    from django.conf import settings
    print(settings.DATABASES['default']['NAME'])
    

    对比这个路径和你打开的SQLite文件路径是否一致。

  • 验证迁移是否真的生效
    终端提示“迁移成功”可能是因为没有需要执行的迁移操作,或者迁移文件存在异常。执行python manage.py showmigrations,查看所有迁移项是否都标有[X]。如果有未应用的迁移,重新执行python manage.py migrate;如果全部已应用,再回到前面确认数据库路径。

  • 用SQL命令替代.tables排查显示问题
    有时候SQLite的.tables命令可能因为环境或权限问题无法正常显示表。可以在sqlite3交互界面执行SELECT name FROM sqlite_master WHERE type='table';,这个命令能直接从系统表查询所有数据表。如果能查到表,说明是.tables的显示问题;如果查不到,说明数据库确实没有生成表,需要重新排查迁移和配置。

内容的提问来源于stack exchange,提问作者csukcl

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 13:25:03