Django常用迁移模型类专栏

12,224 阅读4分钟

MedusaSorcerer的博客


专栏目录

专栏详情

makemigrations

python manage.py makemigrations [APPName]

常用的生成迁移文件的命令, 在我们生成迁移文件的时候可以指定你注册的 APPName 来迁移指定的APP中 models.py 文件的ORM映射, 当然你可以忽略这个参数, 则会对注册的所有APP进行迁移文件生成, 你也可以使用下列命令参数进行其他修饰:

参数表达式参数说明
-h, --help获取帮助提示信息
--dry-run只显示将要进行的迁移信息, 不再写入migration文件夹中
--merge合并迁移冲突
--empty生成一个空迁移
--noinput, --no-input取消输入任何类型的提示
-n NAME, --name NAME指定迁移文件命名
--check如果模型更改缺少迁移, 则非零状态退出
--version获取版本号
-v {0,1,2,3}, --verbosity {0,1,2,3}日志输出状态 0:最小输出, 1:正常输出, 2:详细输出, 3:非常详细的输出
--settings SETTINGS设置Python模块路径, 否则将使用DJANGO_SETTINGS_MODULE环境变量
--pythonpath PYTHONPATH添加Python路径
--traceback迁移出错时引发CommandError进行回溯
--no-color取消命令行输出的信息进行颜色渲染

migrate

python manage.py migrate [AppName [MigrationNumber]]

常用的执行迁移文件的命令, 在生成迁移文件的时候我们可以对迁移文件进行数据表生成操作, 则是执行迁移文件, 你可以指定你注册的 APPName 来对最新生成的迁移文件进行执行生成操作, 你也可以忽略这个参数, 则是默认对注册的所有APP进行迁移文件执行操作。
当然你可以在指定APP的前提下对指定的迁移文件进行迁移文件执行: python manage.py migrate APPName 0001, 迁移文件的名称默认以如同 0001 的四位数字开头命名方式, 所以在迁移指定文件的时候只需要你指定文件序号即可。
在执行迁移文件的时候遇到迁移失败的情况下, 用到最多的命令就是: python manage.py migrate --fake 来解决迁移问题, 你也可以使用下列命名参数进行其他修饰:

参数表达式参数说明
-h, --help获取帮助提示信息
--noinput, --no-input取消输入任何类型的提示
--database DATABASE指定需要同步的数据库
--fake重置或强制重新执行迁移
--fake-initial刚刚生成的迁移脚本标记为已经完成
--run-syncdb使用已有迁移创建表, 不再迁移
--version获取版本号
-v {0,1,2,3}, --verbosity {0,1,2,3}日志输出状态 0:最小输出, 1:正常输出, 2:详细输出, 3:非常详细的输出
--settings SETTINGS设置Python模块路径, 否则将使用DJANGO_SETTINGS_MODULE环境变量
--pythonpath PYTHONPATH添加Python路径
--traceback迁移出错时引发CommandError进行回溯
--no-color取消命令行输出的信息进行颜色渲染

inspectdb

python manage.py inspectdb [TableName] > model.py

常用的将已有数据表生成数据映射模型类的命令, 在有些情况我们需要对已有的数据库表进行进行数据ORM映射, 那么我们就需要对已有的SQL数据表进行数据迁移成Python的Class, 上面的命令则是说明你将指定的 TableName 进行PythonORM代码生成, 并将输出结果出入到 model.py 中, 你可以将生成的 class 复制到你关联的 APPmodels.py 中进行调度使用, 你可以修改你的ClassName, 但我们不建议你修改 db_table 属性, 因为当你使用它的时候会有找不到你指定的 db_table 表名称错误, 你也可以使用下列命名参数进行其他修饰:

参数表达式参数说明
-h, --help获取帮助提示信息
--database DATABASE指定需要同步的数据库
--include-views输出数据模型的视图
--version获取版本号
-v {0,1,2,3}, --verbosity {0,1,2,3}日志输出状态 0:最小输出, 1:正常输出, 2:详细输出, 3:非常详细的输出
--settings SETTINGS设置Python模块路径, 否则将使用DJANGO_SETTINGS_MODULE环境变量
--pythonpath PYTHONPATH添加Python路径
--traceback迁移出错时引发CommandError进行回溯
--no-color取消命令行输出的信息进行颜色渲染