dbviewer 0.4.1 → 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.
@@ -382,7 +382,6 @@
382
382
  .dbviewer-scrollable {
383
383
  max-height: 700px;
384
384
  overflow-y: auto;
385
- border-radius: 0.5rem;
386
385
  scrollbar-width: thin;
387
386
  scrollbar-color: rgba(0, 0, 0, 0.2) transparent;
388
387
  }
@@ -432,7 +431,7 @@
432
431
  .dbviewer-scrollable .table thead {
433
432
  position: sticky;
434
433
  top: 0;
435
- z-index: 10;
434
+ z-index: 40;
436
435
  }
437
436
 
438
437
  /* Additional specificity for table headers in dark mode */
@@ -1277,7 +1276,7 @@
1277
1276
  <div class="dbviewer-content">
1278
1277
  <!-- Sidebar (always present) -->
1279
1278
  <div class="dbviewer-sidebar">
1280
- <%= yield :sidebar %>
1279
+ <%= render 'layouts/dbviewer/shared/sidebar' %>
1281
1280
  </div>
1282
1281
 
1283
1282
  <!-- Main Content Area -->
@@ -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.4.1"
2
+ VERSION = "0.4.2"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dbviewer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.4.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Wailan Tirajoh
@@ -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