生成一个临时文件
python manage.py makemigrations
这时其实是在该app下建立 migrations目录,并记录下你所有的关于modes.py的改动,比如0001_initial.py
数据库文件数据库没有增加新的表">但是这个改动还没有作用到数据库文件,数据库没有增加新的表
接着执行migrate,这时候才真的把作用到数据库文件,产生对应的表
根据临时文件生成数据库表
python manage.py migrate
执行这两条命令自动帮我们创建数据库和基本表
还可以利用这条命令修改djang orm 表结构
现在把models.py 表结构 字段 最大长度64 修改成60
from django.db import models # Create your models here. # 必须继承 # 表名叫cmdb_userinfo class UserInfo(models.Model): # django默认隐藏着会帮你创建 一列id列 自增的,设置为主键,参考mysql # 用户名列,数据类型 字符串类型,指定长度 username = models.CharField(max_length=32) password = models.CharField(max_length=64)
from django.db import models # Create your models here. # 必须继承 # 表名叫cmdb_userinfo class UserInfo(models.Model): # django默认隐藏着会帮你创建 一列id列 自增的,设置为主键,参考mysql # 用户名列,数据类型 字符串类型,指定长度 username = models.CharField(max_length=32) password = models.CharField(max_length=60)
现在表结构变了,需要再执行 python manage.py makemigrations ,python manage.py migrate 自动更新表结构
python manage.py makemigrations Migrations for 'cmdb': cmdbmigrations 002_auto_20181122_2336.py - Alter field password on userinfo
python manage.py migrate
Operations to perform:
Apply all migrations: admin, auth, cmdb, contenttypes, sessions
Running migrations:
Applying cmdb.0002_auto_20181122_2336... OK
数据如果超过最大长度就丢了
总结 通过 python manage.py makemigrations , python manage.py migrate 都可以修改 表结构数据