众所周知,Django较为适合原生开发,即通过该框架搭建一个全新的项目,通过在修改models.py来创建新的数据库表。但是往往有时候,我们需要利用到之前的已经设计好的数据库,数据库中提供了设计好的多种表单。那么这时如果我们再通过models.py再来设计就会浪费很多的时间。所幸Django为我们提供了inspecdb的方法他的作用即使根据已经存在对的mysql数据库表来反向映射结构到models.py中.
所以即使本地MySQL中已经存在目的数据库,还是需要重新用Django框架生成,而不可直接连接。(否则会报错)
具体用法如下:

python manage.py inspecdb > [your app name]\models.py

运行成功后的截图:
在这里插入图片描述
接下来的一步很关键,False表示在迁移时候不新建此表,所以这里应该改为TRUE

在这里插入图片描述

生成models文件后,我采取的做法是只保留自己定义的表结构,其余的系统自带的都删除掉,否则后续会产生很多意想不到的错误。

接着执行迁移,将之前获得的表结构迁移到新数据库中,在此之前需要将migrations中的历史删除干净。
在这里插入图片描述

python manage.py makemigrations sims
python manage.py migrate sims

成功生成表格:
在这里插入图片描述

不知道navicat是不是有一定的延迟,我在pycharm里的database里面显示的出现了新建表格,但是navicat却始终没有显示,但是这不影响后续操作,留个疑问后续再补吧。

更多推荐