Tôi đang tìm một công cụ để đưa các bảng PostgreSQL và xuất ra một Từ điển dữ liệu theo định dạng wiki (tốt nhất là Confluence). Nó có vẻ như hầu hết các công cụ hiện có yêu cầu rất nhiều công việc thủ công/nhiều công cụ để thực hiện nhiệm vụ này (IE> SchemaSpy, DB Visual Architect, Confluence bổ sung để đưa ra HTML DD và chuyển đổi sang Confluence). Tôi đang tìm một công cụ để quét các bảng Postgres của tôi và xuất ra một Data Dictionary thân thiện với wiki, cho phép bảo trì liên tục khi DB thay đổi, mà không cần cập nhật cơ sở dữ liệu và lược đồ DB trong công cụ khác.Máy phát điện từ điển dữ liệu cho PostgreSQL tới Confluence Wiki
Trả lời
Có Trình biên dịch SQL Confluence của Bob Swift cho phép bạn hiển thị dữ liệu bắt nguồn từ truy vấn SQL trong Trang kết hợp .. ví dụ: như một cái bàn .. có lẽ nó đáng để bạn tìm kiếm?
phiên bản Confluence 3.1.x - 4.9.x hiện đang được hỗ trợ ...
Plugin miễn phí và có thể được tải về từ Plugin Trao đổi Atlassian: https://plugins.atlassian.com/plugins/org.swift.confluence.sql
Thông tin thêm về các plugin có thể được tìm thấy ở đây: https://studio.plugins.atlassian.com/wiki/display/SQL/Confluence+SQL+Plugin
Tôi nghĩ bạn sẽ phải tự viết kịch bản này, nhưng nó khá dễ dàng và thú vị. Tôi sẽ giả sử Python ở đây.
Tôi thích giao diện XML-RPC hợp lưu. Để làm điều đó, hãy xem http://goo.gl/KCt3z. Các phương pháp từ xa mà bạn quan tâm có khả năng đăng nhập, getPage, setPage và/hoặc updatePage. Bộ xương này sẽ trông giống như:
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
đây là dữ liệu từ bảng PG. Chúng tôi sẽ xây dựng bên dưới.
Để lấy dữ liệu đơn giản từ PostgreSQL, tôi sử dụng psycopg2 thường xuyên nhất (cũng xem xét SQLSoup). Bất kể bạn lấy dữ liệu như thế nào, bạn sẽ kết thúc với một danh sách các hàng làm từ điển. Phần cơ sở dữ liệu có thể trông giống như:
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()
Bây giờ bạn cần định dạng dữ liệu. Đối với các công cụ đơn giản, print = statements sẽ hoạt động. Để định dạng phức tạp hơn, hãy xem xét một công cụ tạo khuôn mẫu như jinja2 (http://jinja.pocoo.org/). Mã render có thể trông như thế này:
from jinja2 import Template
template = Template(open(template_path).read())
table = template.render(rows = rows)
File template_path sẽ chứa các mẫu định dạng, mà có thể trông giống như:
<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>
Lưu ý: Confluence không còn sử dụng đánh dấu wiki theo mặc định. Bạn nên viết HTML.
Cuối cùng, nếu bạn muốn tạo trang cho tất cả các bảng, bạn có thể xem thông tin_schema, chứa thông tin về cơ sở dữ liệu dưới dạng bảng. Ví dụ:
select table_name from information_schema.tables where table_schema = current_schema();
- 1. Liên kết GitHub từ Số phát hành tới Wiki
- 2. cách lấy dữ liệu json từ máy chủ php tới điện thoại di động Android
- 3. máy phát điện trăn của máy phát điện?
- 4. Máy phát điện từ điện thoại Trợ giúp C++
- 5. máy phát điện thích hợp với máy phát điện phụ
- 6. Chuyển đổi đối tượng máy phát điện để một cuốn từ điển
- 7. Tên Máy phát điện cho .NET
- 8. Máy phát điện Ruby và máy phát Python
- 9. Máy phát thực thể từ cơ sở dữ liệu
- 10. Từ điển Python tới CSV
- 11. C# tới Java - Từ điển?
- 12. Máy phát điện trong C
- 13. Pandas khung dữ liệu từ điển
- 14. Máy phát điện Delphi UUID
- 15. Máy phát điện thoại Homophone
- 16. Trình xem dữ liệu cho máy chủ phát triển AppEngine
- 17. Làm cách nào để chuyển đổi mã HTML sang dạng đánh dấu Wiki theo kiểu Confluence?
- 18. Phát âm từ điển
- 19. Làm thế nào để gọi máy phát điện từ mã?
- 20. Máy phát điện số ngẫu nhiên
- 21. Công cụ tạo từ điển dữ liệu từ tệp SQL
- 22. Sử dụng cho ... else trong máy phát điện Python
- 23. Q & A plugin cho Confluence
- 24. Rails: Hooking vào máy phát điện ORM
- 25. Máy phát điện đảo ngược Python
- 26. Python Tạo từ điển từ dữ liệu excel
- 27. Máy phát điện trực tuyến lorem ipsum
- 28. Thêm máy phát điện mã tùy chỉnh
- 29. Máy phát điện để lặp qua một từ điển thống nhất trong cả Python 2 và 3
- 30. Máy phát điện F # của daterange?
Có vẻ như không có câu trả lời dễ dàng. Nhưng bạn có thể có được kết xuất YAML của cấu trúc DB của bạn với Pyrseas, hoặc đầu ra XML với SchemaSpy. Tất cả phần còn lại là "yaml to wiki" hoặc "xml to wiki" converter ... Không phải là khoa học tên lửa. – filiprem
Thực ra tôi có thể viết trình chuyển đổi yaml-to-wiki này nếu bạn thuê tôi :-) – filiprem
Ý của bạn là gì với định dạng wiki? Bạn có cần một trang với Header1 cho mỗi bảng, Header2 cho mỗi loại không?Hay bạn cần một danh sách các bảng, mỗi bảng trỏ đến một trang chuyên dụng? – vyegorov