solid_litequeen 0.10.0 → 0.10.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2193fbf74ea85b0636eacfaf274db08f75fc6e3df3f20ff92092f332665cc5ae
4
- data.tar.gz: 1916c89aa9c9091fd562535e1f415f8f3844e7b686241ecd5ca19800bf5a82c6
3
+ metadata.gz: 8bea5f5d1e8b1ca9a1c3cc11443592734bad832f263f61c70bace53c74881f42
4
+ data.tar.gz: f4e91d3189ca8e38c3acce297f1da104d99adff11b5ede2b32a02ab3a49f2f0f
5
5
  SHA512:
6
- metadata.gz: ff33367977208e249b3d4eb19a1a0ab4aba4744868dd8c40a52375fe48535ba9eacb2f145c38f58fae57041fc5322ae0047c9cf9038a49568f277358d78b7579
7
- data.tar.gz: 7da74f483615c35208adf2fa98673896e74d45ed31c64ba6f040aad43637832ec0c2c254d6d3542983892b0bdfd2674df22d01709b854996fa6269ff789af95a
6
+ metadata.gz: 2b67cf3712f2f5931fbc43e7ba3d53cc77324d8f231de9d24041068dc5704d000ba53e977914355d8a09b168a88ef9cdff8ec44eee0ec01a36a2e927fb9e9277
7
+ data.tar.gz: 80cff9bb4a94b9ef65eaa3be3cfc72819b03a820f61bfbcac334607897d8ca6c724fe823e5303df2f5bb6d9d13f9e64978a1d0951d0da8c5b077eab10d2d4d8c
@@ -91,25 +91,39 @@ module SolidLitequeen
91
91
  end
92
92
 
93
93
  def download
94
- database_id = params.expect(:database_id)
94
+ database_id = params[:database_id]
95
95
  database_location = Base64.urlsafe_decode64(database_id)
96
96
 
97
- # Verify the file exists
97
+ # Ensure the database file exists
98
98
  unless File.exist?(database_location)
99
99
  flash[:error] = "Database file not found"
100
100
  redirect_to databases_path and return
101
101
  end
102
102
 
103
- # Get the filename from the path
104
- filename = File.basename(database_location)
105
-
106
- # Send the file as a download
107
- send_file database_location,
108
- filename: filename,
109
- type: "application/x-sqlite3",
110
- disposition: "attachment"
103
+ # Create a temporary file for the backup
104
+ backup_file = Tempfile.new([ "backup", ".sqlite3" ])
105
+ backup_file.close # Close the file so SQLite3 can write to it
106
+
107
+ begin
108
+ # Establish connection like we've been doing elsewhere
109
+ DynamicDatabase.establish_connection(
110
+ adapter: "sqlite3",
111
+ database: database_location
112
+ )
113
+
114
+ # Use VACUUM INTO for a more efficient backup
115
+ DynamicDatabase.connection.execute("VACUUM INTO '#{backup_file.path}'")
116
+
117
+ # Send the backup file as a download
118
+ send_file backup_file.path,
119
+ filename: File.basename(database_location),
120
+ type: "application/x-sqlite3",
121
+ disposition: "attachment"
122
+ end
111
123
  end
112
124
 
125
+
126
+
113
127
  def set_column_order
114
128
  table_name = params[:table]
115
129
  database_id = params[:database_id]
@@ -14,7 +14,7 @@
14
14
  <script>
15
15
  document.getElementById('database-select').addEventListener('change', function() {
16
16
  if (this.value) {
17
- window.location.href = '<%= database_path("") %>' + this.value;
17
+ Turbo.visit('<%= database_path("") %>' + this.value);
18
18
  }
19
19
  });
20
20
  </script>
@@ -15,7 +15,6 @@
15
15
  <p class="text-gray-600"><%= pluralize(@row_count, "row") %> found</p>
16
16
  </div>
17
17
 
18
- <%= console %>
19
18
 
20
19
  <div class="bg-white rounded-lg shadow overflow-x-auto">
21
20
  <div class="min-w-full inline-block align-middle">
@@ -1,3 +1,3 @@
1
1
  module SolidLitequeen
2
- VERSION = "0.10.0"
2
+ VERSION = "0.10.3"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solid_litequeen
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.0
4
+ version: 0.10.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vik Borges
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: sqlite3
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: debug
71
85
  requirement: !ruby/object:Gem::Requirement