我正在寻找一个采用PostgreSQL表格并以wiki格式(最好是Confluence)输出数据字典的工具。似乎大多数工具需要大量的手动工作/多种工具来完成这项任务(IE> SchemaSpy,DB Visual Architect,Confluence插件取出输出的HTML DD并转换为Confluence)。我正在寻找一款能够扫描我的Postgres表的工具,并输出一个维基友好的数据字典,可以在数据库更改时进行无缝维护,而无需更新其他工具中的数据库和数据库模式。用于PostgreSQL的数据字典生成器到Confluence维基
7
A
回答
1
有Bob Swift的Confluence SQL插件,它允许您显示从Confluence页面中的SQL查询派生的数据。作为一张桌子..也许值得一看吗?
合流版本3.1.X - 4.9.x,目前支持......
这个插件是免费的,可以从Atlassian的插件交易所下载:https://plugins.atlassian.com/plugins/org.swift.confluence.sql
有关插件的更多信息可在这里找到: https://studio.plugins.atlassian.com/wiki/display/SQL/Confluence+SQL+Plugin
0
我想你必须自己编写脚本,但它很容易和有趣。我会在这里假设Python。
我喜欢Confluence XML-RPC接口。为此,请参阅http://goo.gl/KCt3z。您关心的远程方法可能是登录,getPage,setPage和/或updatePage。此骨架将如下所示:
import xmlrpclib
server = xmlrpclib.Server(opts.url)
conn = server.confluence1
token = conn.login(opts.username, opts.password)
page = conn.getPage(token,'PageSpace',page_title)
page = page + table
page = conn.updatePage(token,page,update_options)
table
这里是来自PG表的数据。我们将在下面构建。
对于从PostgreSQL中提取简单数据,我经常使用psycopg2(也考虑SQLSoup)。无论您如何获取数据,最终都会以行列表作为字典。数据库部分可能如下所示:
import psycopg2, psycopg2.extras
conn = psycopg2.connect("dbname=reece")
cur = conn.cursor(cursor_factory=psycopg2.extras.DictCursor)
cur.execute('SELECT * FROM sometable')
rows = cur.fetchall()
现在您需要格式化数据。对于简单的东西,print =语句将起作用。对于更复杂的格式,请考虑一个模板引擎,如jinja2(http://jinja.pocoo.org/)。渲染代码可能是这样的:
from jinja2 import Template
template = Template(open(template_path).read())
table = template.render(rows = rows)
文件template_path将包含格式模板,它可能看起来像:
<table>
<tr>
<th>col header 1</th>
<th>col header 2</th>
</tr>
{% for row in rows|sort -%}
<tr>
<td>{{row.col1}}</td>
<td>{{row.col2}}</td>
</tr>
{% endfor %}
</table>
注:合流不再默认使用wiki标记。你应该写HTML。
最后,如果要为所有表制作页面,可以查看information_schema,其中包含有关数据库信息的表格。例如:
select table_name from information_schema.tables where table_schema = current_schema();
相关问题
- 1. 你生成你的数据字典吗?
- 2. Postgresql vs Oracle用于维护GIS数据
- 3. 生成基于现有的数据
- 4. 为字典生成字数
- 5. 生成的Django的queryset基于字典的键
- 6. 生成基于字典的值的二进制串在python
- 7. 二维字典计数器
- 8. 从Stata数据生成字典文件
- 9. 字典生成和数据在Python
- 10. 用于交易生成的IBM Quest数据生成器参数
- 11. 基于MySQL数据库中的股票随机生成数字
- 12. 基于表元数据生成代码
- 13. 基于数据属性生成链接
- 14. 基于数据范围生成图表
- 15. 基于JSON数据生成页面
- 16. 生成多维数据
- 17. Confluence维基百科 - Preformatted vs Paragraph?
- 18. 编辑github维基与emacs如confluence-mode?
- 19. 用关系生成PostgreSQL测试数据?
- 20. 生成动态方程基于字典输入
- 21. 基于数据库中定义的字段生成表格
- 22. 基于XML或数据库结构的Flex代码生成器
- 23. PostgreSQL的数据基于桶分析
- 24. 与基于字典
- 25. 如何从2维数组中生成字典?
- 26. 字符串生成器和字典
- 27. 从PostgreSQL获取数据为字典
- 28. 生成从字典
- 29. Php,Mysql。基于多维数组生成表格
- 30. 基于计数的字典排序
看起来没有简单的答案。但是,您可以使用Pyrseas获取您的数据库结构的YAML输出,或使用SchemaSpy获取XML输出。 其余的部分是“yaml to wiki”或“xml to wiki”转换器...不是火箭科学。 – filiprem
其实我可以写这样的yaml-to-wiki转换器如果你雇用我:-) – filiprem
你的意思是'wiki格式'?你需要一个单页面,每个表头Header1,每个类型Header2?或者你需要一个表格列表,每个表格指向一个专用的页面? – vyegorov