一、基本操作
1.基础迁移
# 基于当前的model生成新的迁移策略文件文件
python manage.py makemigrations
# 执行迁移操作
python manage.py migrate
2.查看建好表的模型
python manage.py inspectdb
3.指定app做表初始化
# 指定app,比如新建了一个app
# 1.python manage.py startapp test
# 并且在该app下新建了个models.py文件和编辑相应内容,这时候只想新增这个app的迁移脚本就可以向下面这样操作
#python manage.py makemigrations test
#python manage.py migrate test
python manage.py makemigrations <appname>
python manage.py migrate <appname>
4.指定文件做表初始化
python manage.py migrate <appname> <filename>
5.导出数据库现有表结构
python manage.py inspectdb > models.py
二、遇到的问题
当我们发现做了初始化后,库里只有基础的权限验证表,而无新增的app中的表,或者指定app的时候出现如下报错
CommandError: No installed app with label 'test'
这都是因为我们没有在settings.py文件中配置新增的app的结果,如下配置即可解决问题。
INSTALLED_APPS = [
'polls.apps.PollsConfig', #添加的配置
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'test'
]
三、总结
1.流程
- 在models.py中修改模型;
- 运行python manage.py makemigrations为改动创建迁移记录;
- 运行python manage.py migrate,将操作同步到数据库。
ps: 如果,如果有时候新加的表没有初始化成功,可以将models.py中新加的表删除,重新初始化,然后再次新加到models.py中,再次初始化