一、从已有数据表中建立models
Python manage.py inspectdb > app/models.py 反向生成模型之后,执行以下两步操作
1.建立迁移
python manage.py makemigrations
python manage.py migrate
2.如果出现no migrations to apply,则前往数据中删除django_migrations删除已经注册的序列
原因分析
造成多次应用migrations失败的原因是,当前model是修改过的,原来的migrations已经被我删除,但是,重新生成的migrations使用递增整数记名,所以,在django_migrations表中0001,0002等前面几个数字的文件都已被记录,在Django看来,被记录了就相当于已应用,所以,会出现刚开始的No migrations to apply.
二、从模型向数据库中生成数据表
在models中编写模型代码
from django.db import models class Yrswcustomer(models.Model): user_name = models.CharField(max_length=10) telephone = models.CharField(max_length=12) address = models.CharField(max_length=50) company = models.CharField(max_length=50) pswd = models.CharField(max_length=20) email = models.CharField(max_length=50) class Meta: managed = False db_table = 'yrswcustomer'
命令行打开manage.py所在的目录,一次执行如下两步操作
python manage.py makemigrations
python manage.py migrate
不报错,打开数据库,查看是否有yrswcustomer的数据表生成
.如果出现no migrations to apply,则前往数据中删除django_migrations删除已经注册的序列(建议使用navicat管理数据库)
详细的sql语句执行删除操作,请前往查看本博客下的数据库板块下的sql语句
原因分析
造成多次应用migrations失败的原因是,当前model是修改过的,原来的migrations已经被我删除,但是,重新生成的migrations使用递增整数记名,所以,在django_migrations表中0001,0002等前面几个数字的文件都已被记录,在Django看来,被记录了就相当于已应用,所以,会出现刚开始的No migrations to apply.