Django投票应用开发中误删db.sqlite3,如何恢复或重建数据库?
解决Django投票应用db.sqlite3误删后的恢复/重建方案
一、无备份时直接重建数据库
你的Django项目各app下的migrations目录保留着数据库结构的迁移记录,可直接重建:
- 打开终端,进入项目根目录(包含
manage.py的目录) - 执行迁移命令,自动创建新的
db.sqlite3并生成完整表结构:
该命令会读取所有迁移文件,重建和之前完全一致的数据库表结构。python manage.py migrate - 若需要恢复测试数据:
- 之前用过
python manage.py dumpdata > data.json导出过数据的,可执行导入:python manage.py loaddata data.json - 没导出过的,只能通过创建管理员账号(
python manage.py createsuperuser)登录后台手动添加,或编写脚本插入测试数据。
- 之前用过
二、有备份文件的恢复方式
如果之前手动备份过db.sqlite3(比如复制到其他目录),直接将备份文件复制到项目根目录即可,无需额外命令。
注意事项
- 确认
settings.py里的数据库配置正确,默认sqlite3配置如下:DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': BASE_DIR / 'db.sqlite3', } } - 执行
migrate前,若项目根目录有损坏的空db.sqlite3文件,先删除再执行命令。
内容的提问来源于stack exchange,提问作者Mujaahid Majal
相关产品推荐
相关产品推荐

