前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >django-db-comments: model移行时自动生成 table,column逻辑名称

django-db-comments: model移行时自动生成 table,column逻辑名称

原创
作者头像
刀枪不入de王二花
修改2022-07-30 00:02:22
7150
修改2022-07-30 00:02:22
举报
文章被收录于专栏:BETTERBETTER

Django migrate

迁移是 Django 将对模型model的修改(例如增加一个字段,删除一个模型)应用至数据库架构中的方式。

  • 生成移行文件时,自动差分。
  • 有参照关系的app,需先生成【父app】的移行文件,再生成【子app】

具体执行命令如下:

代码语言:python
复制
makemigrations:生成移行文件
(env) PS D:\Projects\pj> python .\manage.py makemigrations  #执行对象:pj全体(包括自带的 user permission等)
(env) PS D:\Projects\pj> python .\manage.py makemigrations parentAppName   # 单独指定app
(env) PS D:\Projects\pj> python .\manage.py makemigrations childrenAppName # 单独指定app
(env) PS D:\Projects\pj> python .\manage.py migrate # 已生成的移行文件,反映到数据库

生成的移行文件,在各app下的·migrations文件夹下,例:app:master

移行文件反映成功的话,存储在Django_migrations表中

移行后的数据库表,没有表名,和列名的注释

共通表部分
共通表部分

django-db-comments:model移行时,自动作成伦理名(model コラム 論理名・コメント)

django model field comment in database

可以将model中定义的 【verbose_name】,【 help_text】添加到数据库表/列的伦理名。

伦理名= verbose_name | help_text

  1. 安装 django-db-comments
  2. settings.py INSTALLED_APPS中追加 django-db-comments

安装 django-db-comments

代码语言:javascript
复制
(smsenv) PS D:\Projects\pj> pip install django-db-comments   

settings.py INSTALLED_APPS中追加 django-db-comments

代码语言:python
复制
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django_db_comments',       # 追加
    ... ...
]

再重新执行移行命令【makemigrations , migrate】,刷新数据库即可

table名,column名
table名,column名

model定义参照

代码语言:javascript
复制
class BaseModel(models.Model):
    locked     = models.BooleanField(default=False, verbose_name='ロックフラグ')
    locked_by  = models.CharField(default='', max_length=200, verbose_name='ロック者')
    deleted    = models.BooleanField(default=False, verbose_name='削除フラグ')
    deleted_by = models.CharField(default="", max_length=200, verbose_name='削除者')
    created_at = models.DateTimeField(auto_now_add=True, verbose_name='登録日時')
    updated_at = models.DateTimeField(auto_now=True, verbose_name='更新日時')
    created_by = models.CharField(default="", max_length=200, verbose_name='登録者')
    updated_by = models.CharField(default="", max_length=200, verbose_name='更新者')

伦理名= verbose_name | help_text 例

补充:

差分移行error过多时,可选择重新作成数据库。 ※注意:差分移行时,表中数据可以保留。

数据库重新作成时:

1,可执行以下SQL,将数据库内容其全部清空【postgre】

代码语言:javascript
复制
DROP SCHEMA public CASCADE;
CREATE SCHEMA public;
GRANT ALL ON SCHEMA public TO postgres;
GRANT ALL ON SCHEMA public TO public;

2,将已生成的移行文件,全部删除(各app下的【migrations】文件夹整体删除即可)

3,重新执行【makemigrations, migrate】

pyPI django-db-comments

Django migrations

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Django migrate
    • 具体执行命令如下:
      • 移行文件反映成功的话,存储在Django_migrations表中
      • django-db-comments:model移行时,自动作成伦理名(model コラム 論理名・コメント)
        • 安装 django-db-comments
          • settings.py INSTALLED_APPS中追加 django-db-comments
          • 补充:
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档