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.
- checksums.yaml +4 -4
- data/app/controllers/concerns/dbviewer/database_operations.rb +11 -29
- data/app/controllers/concerns/dbviewer/pagination_concern.rb +0 -17
- data/app/controllers/dbviewer/home_controller.rb +3 -0
- data/app/controllers/dbviewer/tables_controller.rb +45 -83
- data/app/helpers/dbviewer/application_helper.rb +313 -17
- data/app/views/dbviewer/entity_relationship_diagrams/index.html.erb +0 -4
- data/app/views/dbviewer/home/index.html.erb +34 -95
- data/app/views/dbviewer/logs/index.html.erb +0 -4
- data/app/views/dbviewer/tables/index.html.erb +0 -4
- data/app/views/dbviewer/tables/query.html.erb +0 -4
- data/app/views/dbviewer/tables/show.html.erb +516 -309
- data/app/views/layouts/dbviewer/application.html.erb +2 -3
- data/lib/dbviewer/table_metadata_manager.rb +33 -1
- data/lib/dbviewer/version.rb +1 -1
- metadata +2 -2
- /data/app/views/{dbviewer → layouts/dbviewer}/shared/_sidebar.html.erb +0 -0
@@ -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:
|
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
|
-
<%=
|
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
|
data/lib/dbviewer/version.rb
CHANGED
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.
|
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
|
File without changes
|