python测试开发django-194.addcomments 模块生成mysql表字段注释

2022-07-12 15:18:57 浏览数 (1)

前言

在Django 中 models 模型虽然给字段加了 verbose_name 属性,通过 migrate 命令生成好对应的表,但是表注释并没有生成

问题描述

models 模型创建表结构

代码语言:javascript复制
class ProjectInfo(models.Model):
    """项目信息"""
    class Meta:
        verbose_name = '项目信息'
        # db_table = 'ProjectInfo'  # 此参数可以自定义表的名称

    project_name = models.CharField(
        verbose_name='项目名称',
        max_length=100,
        unique=True,
        null=False)

虽然给字段加了 verbose_name='项目名称' 属性,执行同步数据库时,却没有对应注释

代码语言:javascript复制
python manage.py makemigrations
python manage.py migrate

mysql 查看字段注释为空

addcomments 模块

pip 安装第三方 addcomments 模块

代码语言:javascript复制
pip install addcomments

models模型需要给每个字段加verbose_name属性

代码语言:javascript复制
class ProjectInfo(models.Model):
    """项目信息"""
    class Meta:
        verbose_name = '项目信息'
        # db_table = 'ProjectInfo'  # 此参数可以自定义表的名称

    project_name = models.CharField(
        verbose_name='项目名称',
        max_length=100,
        unique=True,
        null=False)

settings.py注册app

代码语言:javascript复制
NSTALLED_APPS = [
    ......
    'addcomments',
]

执行生成表注释命令

代码语言:javascript复制
python manage.py addcolumncomments

执行过程中会看到以下日志

代码语言:javascript复制
-- FOR web_projectinfo.create_time
        ALTER TABLE web_projectinfo
        MODIFY COLUMN `create_time` datetime(6) NOT NULL COMMENT '创建时间'
-- FOR web_projectinfo.update_time
        ALTER TABLE web_projectinfo
        MODIFY COLUMN `update_time` datetime(6) NOT NULL COMMENT '更新时间'
-- FOR web_projectinfo.project_name
        ALTER TABLE web_projectinfo
        MODIFY COLUMN `project_name` varchar(100) NOT NULL COMMENT '项目名称'

执行完成后就可以看到表字段注释了

2022年第 11 期《python接口web自动化 测试开发》课程,6月5号开学

0 人点赞