对于app间有依赖关系的初始化,先在settings中将其它app注掉,同步主表,然后再打开其它app同步。
1.初次部署代码,初始化数据库,建表但并没有对app注册migrate
python manage.py makemigrations
python manage.py migrate
注:此时字段变更并不能被migrate检测到,无法变更字段。
此命令作为整个工程初始化数据库时使用,主要用于初始化User等标准库
2.对已有数据库的app转化为migrate
python manage.py makemigrations app_name
python manage.py migrate app_name --fake-initial
即可初始化。
之后app中字段变动有两中方式修改
a) 修改所有注册过migrate的app
python manage.py makemigrations
python manage.py migrate
b)单独修改APP
python manage.py makemigrations app_name
python manage.py migrate app_name
3.新增app,还未创建数据库的python manage.py makemigrations app_name
python manage.py migrate app_name
4.对于工具类app的model,不需要修改,则不需要注册migrate