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
相关推荐
The_Ticker20 小时前
印度股票实时行情API(低成本方案)
python·websocket·算法·金融·区块链
ZC跨境爬虫20 小时前
Scrapy工作空间搭建与目录结构解析:从初始化到基础配置全流程
前端·爬虫·python·scrapy·自动化
EAIReport20 小时前
国外网站数据批量采集技术实现路径
开发语言·python
Ulyanov20 小时前
基于ttk的现代化Python音视频播放器:UI设计与可视化技术深度解析
python·ui·音视频
刘~浪地球21 小时前
Redis 从入门到精通(十三):哨兵与集群
数据库·redis·缓存
Freak嵌入式21 小时前
MicroPython LVGL基础知识和概念:时序与动态效果
开发语言·python·github·php·gui·lvgl·micropython
dyyshb21 小时前
PostgreSQL 终极兜底方案
数据库·postgresql
zhangzeyuaaa21 小时前
Python 中的 Map 和 Reduce 详解
开发语言·python
他们叫我技术总监21 小时前
零依赖!FineReport11 快速对接 TDengine 数据库:从驱动部署到报表实现
大数据·数据库·ai·tdengine
TDengine (老段)21 小时前
TDengine IDMP 可视化 —— 定时报告
大数据·数据库·人工智能·物联网·时序数据库·tdengine·涛思数据