dbviewer 0.3.16 → 0.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -47,7 +47,8 @@ module Dbviewer
47
47
  metadata = {
48
48
  primary_key: primary_key(table_name),
49
49
  indexes: fetch_indexes(table_name),
50
- foreign_keys: fetch_foreign_keys(table_name)
50
+ foreign_keys: fetch_foreign_keys(table_name),
51
+ reverse_foreign_keys: fetch_reverse_foreign_keys(table_name)
51
52
  }
52
53
 
53
54
  @cache_manager.store_metadata(table_name, metadata)
@@ -100,5 +101,36 @@ module Dbviewer
100
101
  }
101
102
  end
102
103
  end
104
+
105
+ # Get reverse foreign keys (tables that reference this table)
106
+ # @param table_name [String] Name of the table
107
+ # @return [Array<Hash>] List of reverse foreign keys with details
108
+ def fetch_reverse_foreign_keys(table_name)
109
+ reverse_fks = []
110
+
111
+ # Get all tables and check their foreign keys
112
+ tables.each do |other_table|
113
+ next if other_table == table_name
114
+
115
+ begin
116
+ @connection.foreign_keys(other_table).each do |fk|
117
+ if fk.to_table == table_name
118
+ reverse_fks << {
119
+ name: fk.name,
120
+ from_table: fk.from_table,
121
+ to_table: fk.to_table,
122
+ column: fk.column,
123
+ primary_key: fk.primary_key,
124
+ relationship_type: "has_many"
125
+ }
126
+ end
127
+ end
128
+ rescue => e
129
+ Rails.logger.error("[DBViewer] Error retrieving foreign keys for table #{other_table}: #{e.message}")
130
+ end
131
+ end
132
+
133
+ reverse_fks
134
+ end
103
135
  end
104
136
  end
@@ -1,3 +1,3 @@
1
1
  module Dbviewer
2
- VERSION = "0.3.16"
2
+ VERSION = "0.4.2"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dbviewer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.16
4
+ version: 0.4.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Wailan Tirajoh
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-05-23 00:00:00.000000000 Z
11
+ date: 2025-05-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -67,13 +67,13 @@ files:
67
67
  - app/views/dbviewer/entity_relationship_diagrams/index.html.erb
68
68
  - app/views/dbviewer/home/index.html.erb
69
69
  - app/views/dbviewer/logs/index.html.erb
70
- - app/views/dbviewer/shared/_sidebar.html.erb
71
70
  - app/views/dbviewer/tables/_table_structure.html.erb
72
71
  - app/views/dbviewer/tables/index.html.erb
73
72
  - app/views/dbviewer/tables/mini_erd.html.erb
74
73
  - app/views/dbviewer/tables/query.html.erb
75
74
  - app/views/dbviewer/tables/show.html.erb
76
75
  - app/views/layouts/dbviewer/application.html.erb
76
+ - app/views/layouts/dbviewer/shared/_sidebar.html.erb
77
77
  - config/routes.rb
78
78
  - lib/dbviewer.rb
79
79
  - lib/dbviewer/cache_manager.rb