mysql生成数据库字典文档

项目交付离不开项目数据库字典文档。下面用python轻松生成交付文档字典。

一 生成doc文档数据库字典效果:

1 生成doc文件,如下图:

2 打开文件字典格式内容 ,如下图:

mysql生成数据库字典文档_第1张图片

二 python生成doc字典文档代码

  生成doc数据库字典python代码:

import docx
import os
from docx import Document #导入库 python-docx
import pymysql




def exportDbInfoWord (path):
    host = 'xx.xx.xx.xx'
    connect = pymysql.connect(host=host, user='user', password='xxxxx', db='information_schema')
    db ='dbname'
    cur = connect.cursor()

    cur.execute("""SELECT

    -- T.TABLE_SCHEMA AS '数据库名称',

     T.TABLE_NAME AS '表名',

    -- T.TABLE_TYPE AS '表类型',

    -- T. ENGINE AS '数据库引擎',

    -- C.ORDINAL_POSITION AS '字段编号',

    C.COLUMN_NAME AS '字段名',

    C.COLUMN_TYPE AS '数据类型',

    C.IS_NULLABLE AS '允许为空',

    -- C.COLUMN_KEY AS '键类型',

    -- C.EXTRA AS '自增属性',

    -- C.CHARACTER_SET_NAME AS '编码名称',

    C.COLUMN_COMMENT AS '字段说明',
    T.table_comment AS '表名注释'

    FROM

    COLUMNS C

    INNER JOIN TABLES T ON C.TABLE_SCHEMA = T.TABLE_SCHEMA

    AND C.TABLE_NAME = T.TABLE_NAME

    WHERE T.TABLE_SCHEMA = '"""+db+"' ")

    document = Document()

    # rowcount = cur.rowcount

    i = 1
    v_table_name = '表名称'
    for u in cur:
        if (v_table_name != u[0]):
            i = 1
            v_table_name = u[0]
            # document.add_heading('表:dg_ad ', 0)  #插入标题
            document.add_paragraph()
            p = document.add_paragraph('表: ')  # 插入段落
            p.add_run(v_table_name + '(' + u[5] + ')').bold = True
            # p.add_run('italic.').italic = True
            table = document.add_table(rows=1, cols=4, style='Table Grid')
            # table.cell(0,0).text='字段名'
            run = table.cell(0, 0).paragraphs[0].add_run('字段名')
            run.font.name = '宋体'
            run.bold = True  # 加粗
            # table.cell(0,1).text='数据类型'
            run = table.cell(0, 1).paragraphs[0].add_run('数据类型')
            run.font.name = '宋体'
            run.bold = True  # 加粗
            # table.cell(0,2).text='允许为空'
            run = table.cell(0, 2).paragraphs[0].add_run('允许为空')
            run.font.name = '宋体'
            run.bold = True  # 加粗
            # table.cell(0,3).text='字段说明'
            run = table.cell(0, 3).paragraphs[0].add_run('字段说明')
            run.font.name = '宋体'
            run.bold = True  # 加粗

        table.add_row()
        table.cell(i, 0).text = u[1]
        table.cell(i, 1).text = u[2]
        table.cell(i, 2).text = u[3]
        table.cell(i, 3).text = u[4]
        i = i + 1

    document.save(path)


if __name__ == '__main__':
    path = 'D:/数据库字典.docx'
    exportDbInfoWord(path);
    print('完成')






    

你可能感兴趣的:(python)