8

PostgreSQL テーブルを取り、Wiki 形式 (できれば Confluence) でデータ ディクショナリを出力するツールを探しています。ほとんどのツールは、このタスクを達成するために多くの手作業/複数のツールを必要とするようです (IE> SchemaSpy、DB Visual Architect、出力された HTML DD を取得して Confluence に変換するための Confluence プラグイン)。Postgres テーブルをスキャンし、Wiki に適したデータ ディクショナリを出力する 1 つのツールを探しています。これにより、他のツールでデータベースと DB スキーマを更新することなく、DB の変更に合わせてシームレスなメンテナンスが可能になります。

4

2 に答える 2

1

ボブ・スウィフトのConfluence SQLプラグインがあり、SQLクエリから派生したデータをConfluenceページに表示できます。たとえばテーブルとして..おそらく一見の価値がありますか?

Confluenceバージョン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にあります。

于 2012-04-25T11:04:15.980 に答える
0

これは自分でスクリプト化する必要があると思いますが、とても簡単で楽しいものです。ここではPythonを想定します。

ConfluenceXML-RPCインターフェースが好きです。そのためには、 http: //goo.gl/KCt3zを参照してください。気になるリモートメソッドは、login、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>

注:Confluenceはデフォルトでwikiマークアップを使用しなくなりました。HTMLを書く必要があります。

最後に、すべてのテーブルのページを作成する場合は、データベースに関する情報をテーブルとして含むinformation_schemaを確認できます。例えば:

select table_name from information_schema.tables where table_schema = current_schema();
于 2012-12-12T19:03:22.133 に答える