1.终端执行python manage.py makemigrations
时报“No changes detected”
答:
如果确定settings.py
文件夹中已经安装了该迁移模型所在的app,并且这是一个新创建的模型,在此之前app目录下的"migrations"文件夹下没有与此有关的py文件。那么可以尝试在命令后面跟上一个app_label
。如我的app名字是“course”,那个在终端输入
python manage.py makemigrations course
2.根据旧的数据库生成对应的ORM模型
答:
1.现在settings.py
中设置好数据库DATABASES的选项。
2.将表转换成模型后的代码。示例代码如下:
python manage.py inspectdb
## 这样的代码将会显示在终端上
python manage.py inspectdb > models.py
## 使用该命令可将代码输出到model.py文件中
python manage.py inspectdb course_course > models.py
## 也可以只是转换指定的course_course表
3.修正模型。如:模型名,模型所属app,模型外键,Meta下的managed=False,多对多模型。
4.执行命令python manage.py makemigrations
来生成初始化的迁移脚本。
5.执行命令python manage.py migrate --fake-initial
。因为表已经存在了,所以后面要加上--fake-initial
,否则会报错。
6.此后可以按正常的模型修改模型迁移执行了。