Django数据库重新初始化

开发过程中 models.py 中的模型经历一番爆改后,执行migrate就报错。干脆重新初始化。

操作步骤:

  1. 删除旧的数据库文件,重新创建。如果你是使用SQLite,删除后无需重新创建,Django在运行迁移时可以自动完成SQLite数据库创建。如果使用其他数据库,需要手动创建一个新的数据库。

  2. 删除迁移文件 :删除每个应用下的migrations文件夹中除了__init__.py文件以外的所有文件。这一步是为了清除Django对旧数据库结构的迁移记录。

    复制代码
    import os
    
    exclude = ["venv"] # 需要排除的文件目录
    for root, dirs, files in os.walk('.'):
        dirs[:] = [d for d in set(dirs) - set(exclude)]
        if 'migrations' in dirs:
            dir = dirs[dirs.index('migrations')]
            for root_a, dirs_a, files_a in os.walk(os.path.join(root, dir)):
                for file_b in files_a:
                    if file_b != '__init__.py':
                        dst_file = os.path.join(root_a, file_b)
                        print('删除文件>>> ', dst_file)
                        os.remove(dst_file)
  3. 执行 重建数据库并初始化的命令:

    复制代码
    # 依次执行
    python manage.py flush 
    python manage.py makemigrations
    python manage.py migrate
相关推荐
风噪13 分钟前
centos7 python3.13全套安装(可用于离线复制)
python
xwz小王子22 分钟前
Science Robotics基础模型正在改写机器人集群的“游戏规则”
数据库·人工智能·机器人
茉莉玫瑰花茶31 分钟前
LangGraph 介绍
服务器·网络·数据库
倒霉蛋小马35 分钟前
【Redis】利用Redis构造全局唯一ID
数据库
夕除42 分钟前
springboot--06
数据库·spring boot·mybatis
小陈的进阶之路43 分钟前
Python系列课(5)——数据容器
windows·python
知识领航员1 小时前
2026年推荐6个AI音乐工具
java·人工智能·python·eclipse·django·php·pygame
PieroPc1 小时前
证件裁切拼版工具
python
2401_833033621 小时前
golang如何实现MQTT主题通配符路由_golang MQTT主题通配符路由实现策略
jvm·数据库·python
AI精钢1 小时前
修复 AI Gateway 图片 MIME 类型错误:用魔数检测替代扩展名猜测
网络·人工智能·python·gateway·aigc