Class: DatabaseDocumenter::DatabaseComment::PostgresDatabaseComment

Inherits:
BaseDatabaseComment show all
Defined in:
lib/database_documenter/database_comment/postgres_database_comment.rb

Class Method Summary collapse

Methods inherited from BaseDatabaseComment

database_name

Class Method Details

.read_columns_comment(table_name) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/database_documenter/database_comment/postgres_database_comment.rb', line 3

def self.read_columns_comment(table_name)
  select_comment = "    SELECT\n      cols.column_name,\n      (\n        SELECT\n            pg_catalog.col_description(c.oid, cols.ordinal_position::int)\n        FROM\n            pg_catalog.pg_class c\n        WHERE\n            c.oid = (SELECT ('\"' || cols.table_name || '\"')::regclass::oid)\n            AND c.relname = cols.table_name\n      ) AS column_comment\n    FROM\n        information_schema.columns cols\n    WHERE\n        cols.table_catalog    = '\#{database_name}'\n        AND cols.table_name   = '\#{table_name}'\n        AND cols.table_schema = 'public';\n  SQL\n\n  columns_comment_hash = {}\n  ActiveRecord::Base.connection.execute(select_comment).map { |c| columns_comment_hash[c['column_name']] = c['column_comment'] }\n  columns_comment_hash\nend\n"

.read_table_comment(table_name) ⇒ Object



29
30
31
32
33
34
35
# File 'lib/database_documenter/database_comment/postgres_database_comment.rb', line 29

def self.read_table_comment(table_name)
  select_comment = "    select obj_description('public.\#{table_name}'::regclass);\n  SQL\n\n  ActiveRecord::Base.connection.execute(select_comment)[0]['obj_description']\nend\n"