Сгенерить описание базы данных

springy
Дата: 06.04.2015 16:25:29
Есть база. В таблицах присутствует описание COMMENT ON TABLE, COMMENT ON COLUMN.

Есть какая-либо возможность сгенерить всё это описание по всем схемам и таблицам в HTML формате?
fte
Дата: 06.04.2015 19:26:00
Это называется реинжениринг?
из бесплатных....
pgmodeler
но он сыроват...
Остальное за бабло
springy
Дата: 07.04.2015 10:43:03
Нет, нужно просто описание. Что-то типа страничек с описанием название таблицы, поля в таблицы с комментариями прописанными в базе.
p2.
Дата: 07.04.2015 11:32:41
springy,

Для генерациии одностраничного html без изысков - psql.
qwwq
Дата: 07.04.2015 11:37:17
springy,
и непременно в html сразу ?

если вывести грид в html не боитесть (могу конечно кастнуть в html сразу sql-m, но зачем)

+
SELECT 
	CASE WHEN attnum =0 THEN quote_ident( pg_namespace.nspname) END AS "schema"
	,CASE WHEN attnum =0 THEN pg_class.relname END AS relname
	--,pg_inherits.inhparent
	,CASE WHEN attnum <>0 THEN attnum END AS attnum
	,pg_attribute.attname
	,CASE WHEN attnum= 0 THEN pg_catalog.obj_description(pg_class.oid) ELSE  pg_description.description END
	--,pg_type.typname
	,TRIM (REPLACE(
	REPLACE(
	format_type(pg_attribute.atttypid, pg_attribute.atttypmod)
	,'character varying','varchar')
	,'without time zone','')
	) AS format_type
	--,pg_attribute.*
	--,pg_class.*

 FROM  pg_class 
 INNER JOIN pg_namespace 
	ON pg_namespace.oid = pg_class.relnamespace
 INNER JOIN
	--/*
	(SELECT
		
		attrelid, attnum, attname,atttypid,atttypmod FROM pg_attribute pga
	UNION ALL
	SELECT pg_class.oid AS attrelid, 0 AS attnum,NULL AS attname, NULL AS atttypid ,NULL AS atttypmod
	FROM pg_class
	 )--*/	
	pg_attribute 
	ON pg_attribute.attrelid = pg_class.oid 
 LEFT JOIN pg_description
	ON  pg_description.objoid = pg_class.oid 
	AND pg_description.objsubid = pg_attribute.attnum
LEFT JOIN pg_type
	ON  pg_attribute.atttypid=pg_type.oid
LEFT JOIN pg_inherits 
	ON pg_inherits.inhrelid = pg_class.oid 
WHERE	
	pg_class.relkind='r' 
	AND pg_attribute.attnum>=0
	AND pg_inherits.inhparent IS NULL
	
	AND quote_ident( pg_namespace.nspname) NOT IN ('pg_catalog','information_schema'
				,'londiste','pgq','pgq_ext','pgq_node','trash')
ORDER BY 
	quote_ident( pg_namespace.nspname)
	,pg_class.relname
	,pg_attribute.attnum
  
springy
Дата: 07.04.2015 13:49:44
Просто нужна справочная система по базе, для удобства разработчиков. В одну страницу не очень удобно, объектов очень много.
Думал есть что-то готовое.
qwwq
Дата: 07.04.2015 14:04:13
springy
Просто нужна справочная система по базе, для удобства разработчиков. В одну страницу не очень удобно, объектов очень много.
Думал есть что-то готовое.

осторожно интересуюсь -- а что, на жабе написать html-пагинатор для грида -- уже проблема ?

или вы И на жабе -- груши околачиваете ?

а так -- залезьте в любой реверс--инжинирящий вструмент. оно и отчеты умеет. (или только их нормально и умеет)

как вариант -- суньте в приведенный скрипт пару бинд-переменных -- по схемам, или для ilike по имени -- будет вам интерактив. когда вызов из жабы закодите.
интерактив -- он всегда лучше -- даёт возможности сделать обозримые срезы.

кста, недавно какую-то обобщенную шняжку показывали -- грабит всё, что хошь -- от ара--кала, до мускуля, не пропуская пж и мсскл. но, за ненадобностью, не запомнил.
vyegorov
Дата: 07.04.2015 16:42:14
springy,

Это просто и быстро скриптуется через связку shell + psql.
Когда захочется красивостей — перейти на perl / python, ключиков добавить, выложить на github...

Можно что-то тут глянуть: https://wiki.postgresql.org/wiki/Community_Guide_to_PostgreSQL_GUI_Tools