一、迁移过程原理
1.先写好models.py文件,通过python manage.py makemigrations生成迁移文件。每当模型更改后,都需要做迁移,在最新的迁移文件基础上生成新的迁移文件(django默认记录模型的变化过程)
2.通过python manage.py migrate执行迁移文件。生成对应的数据库。
二、通过SQL语句生成模型
上面提到的生成表的方式都是Model->SQL(迁移models.py生成表)
除这种方式,django还支持SQL->Model的方式
1.写出构造表的SQL语句,然后运行,生成对应的表
2.执行python manage.py inspectdb,生成对应的python代码,复制到models.py即可
若想直接生成models.py文件,需要在后边加上目标文件名:python manage.py inspectdb > [app_name]/models.py
三、模型的继承
-models.py
Fresh继承自Student,拥有Student的全部属性(包括父类属性)。但是迁移时会创建Student模型,并创建一个外键到Fresh表(表中只有父表的外键和自己独有的字段)
-若不想生成父类模型,需要定义元信息的抽象属性
class Meta:
abstract = True
且子模型迁移生成的表中直接包含父模型的字段