私はPostgreSQLのテーブルを取ってwikiフォーマット(好ましくはConfluence)でデータディクショナリを出力するツールを探しています。ほとんどのツールは、このタスク(IE> SchemaSpy、DBビジュアルアーキテクト、出力されたHTML DDを受け取り、Confluenceに変換するためのConfluenceプラグイン)を達成するための多くの手動作業/複数のツールが必要です。私は自分のPostgresテーブルをスキャンし、他のツールでデータベースとDBスキーマを更新することなく、DBが変更されたときにシームレスな保守を可能にするwikiフレンドリーなデータディクショナリを出力する1つのツールを探しています。PostgreSQL - Confluence Wikiのデータディクショナリジェネレータ
答えて
ボブスウィフトの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
私はあなた自身でこのスクリプトを書かなければならないと思いますが、それはかなり簡単で楽しいと思います。ここではPythonを想定します。
私はConfluence XML-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();
- 1. Confluence wiki XML RPC API system.list method
- 2. PostgreSQLのレプリケーションツールPostgreSQLのWikiに
- 3. FogBugz 6から(ほとんど)他のwiki(最終的な目的地:Confluence)にwikiをエクスポートするには?
- 4. オープンソースのマークアップ - > HTMLツールがConfluence wikiマークアップ用に存在しますか?
- 5. 移行のConfluence(ゴラム)
- 6. Confluenceのルビー
- 7. ConfluenceのQ&A
- 8. Confluenceのバージョン履歴
- 9. Confluenceの匿名ユーザー向けにConfluenceのJIRAコンテンツを表示
- 10. Confluenceのwiki、コミュニティ、およびQ&A機能の評価方法を教えてください。
- 11. HTMLコードをConfluenceスタイルのWikiマークアップに変換するにはどうすればよいですか?
- 12. JASIG CAS jira + confluence sso
- 13. MediaWikiからConfluenceへの移行
- 14. Atlassian Confluence with Active Directory認証
- 15. Dreamhost VPS上のSSL上のConfluence
- 16. Confluenceでの高度な検索CQLエラー
- 17. Confluence:テーブル内の{children}を表示
- 18. Sharepoint Wiki
- 19. 自分のプロジェクトでConfluenceのエディタを使用できますか?
- 20. wikiへのphpDocumentorか?
- 21. wiki `Home`ページのすべてのwikiページを一覧表示
- 22. Atlassian Confluence with External SQL Database 2008 Express
- 23. phpDocをConfluenceにインポートするには?
- 24. PyDocをJira Confluenceにインポートする方法
- 25. のPostgreSQL 9.4 PostgreSQLの
- 26. Wakawaka Wikiマークアップ
- 27. asp.net mvc wiki
- 28. Mantis - 統合Wiki
- 29. RTF to Wiki Converter?
- 30. wiki iphone project
簡単な答えはないようです。しかし、Pyrseasを使ってDB構造のYAML出力を得ることも、SchemaSpyを使ってXML出力することもできます。 残りはすべて「yaml to wiki」または「xml to wiki」コンバータです...ロケット科学ではありません。 – filiprem
実際にあなたが私を雇うなら、そのようなyaml-to-wikiコンバータを書くことができます:-) – filiprem
'wiki format'の意味は?ヘッダー1つのテーブル、ヘッダー2の種類ごとに1つのページが必要ですか?または、専用のページを指す各テーブルの一覧が必要ですか? – vyegorov