backy_rb 0.1.3 → 0.1.5
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/.backyrc.example +17 -0
- data/CHANGELOG.md +3 -0
- data/Gemfile +4 -0
- data/Gemfile.lock +134 -1
- data/README.md +69 -11
- data/{backy.gemspec → backy_rb.gemspec} +5 -2
- data/bin/backy +4 -0
- data/dummy/psql/Gemfile +0 -34
- data/lib/backy/cli.rb +88 -0
- data/lib/backy/configuration.rb +65 -2
- data/lib/backy/db.rb +1 -0
- data/lib/backy/list.rb +1 -1
- data/lib/backy/logger.rb +27 -0
- data/lib/backy/pg_dump.rb +60 -6
- data/lib/backy/pg_restore.rb +73 -7
- data/lib/backy/version.rb +1 -1
- data/lib/{backy.rb → backy_rb.rb} +15 -0
- metadata +53 -61
- data/dummy/psql/.gitattributes +0 -7
- data/dummy/psql/.gitignore +0 -22
- data/dummy/psql/.ruby-version +0 -1
- data/dummy/psql/Gemfile.lock +0 -207
- data/dummy/psql/README.md +0 -24
- data/dummy/psql/Rakefile +0 -6
- data/dummy/psql/app/assets/config/manifest.js +0 -2
- data/dummy/psql/app/assets/images/.keep +0 -0
- data/dummy/psql/app/assets/stylesheets/application.css +0 -15
- data/dummy/psql/app/controllers/application_controller.rb +0 -2
- data/dummy/psql/app/controllers/concerns/.keep +0 -0
- data/dummy/psql/app/controllers/posts_controller.rb +0 -59
- data/dummy/psql/app/helpers/application_helper.rb +0 -2
- data/dummy/psql/app/helpers/posts_helper.rb +0 -2
- data/dummy/psql/app/models/application_record.rb +0 -3
- data/dummy/psql/app/models/concerns/.keep +0 -0
- data/dummy/psql/app/models/post.rb +0 -2
- data/dummy/psql/app/views/layouts/application.html.erb +0 -15
- data/dummy/psql/app/views/posts/_form.html.erb +0 -27
- data/dummy/psql/app/views/posts/_post.html.erb +0 -12
- data/dummy/psql/app/views/posts/edit.html.erb +0 -10
- data/dummy/psql/app/views/posts/index.html.erb +0 -14
- data/dummy/psql/app/views/posts/new.html.erb +0 -9
- data/dummy/psql/app/views/posts/show.html.erb +0 -10
- data/dummy/psql/bin/bundle +0 -109
- data/dummy/psql/bin/rails +0 -4
- data/dummy/psql/bin/rake +0 -4
- data/dummy/psql/bin/setup +0 -33
- data/dummy/psql/config/application.rb +0 -43
- data/dummy/psql/config/boot.rb +0 -3
- data/dummy/psql/config/credentials.yml.enc +0 -1
- data/dummy/psql/config/database.yml +0 -87
- data/dummy/psql/config/environment.rb +0 -5
- data/dummy/psql/config/environments/development.rb +0 -62
- data/dummy/psql/config/environments/production.rb +0 -75
- data/dummy/psql/config/environments/test.rb +0 -50
- data/dummy/psql/config/locales/en.yml +0 -33
- data/dummy/psql/config/master.key +0 -1
- data/dummy/psql/config/puma.rb +0 -43
- data/dummy/psql/config/routes.rb +0 -7
- data/dummy/psql/config.ru +0 -6
- data/dummy/psql/db/migrate/20230330203226_create_posts.rb +0 -10
- data/dummy/psql/db/schema.rb +0 -23
- data/dummy/psql/db/seeds.rb +0 -8
- data/dummy/psql/log/.keep +0 -0
- data/dummy/psql/public/404.html +0 -67
- data/dummy/psql/public/422.html +0 -67
- data/dummy/psql/public/500.html +0 -66
- data/dummy/psql/public/apple-touch-icon-precomposed.png +0 -0
- data/dummy/psql/public/apple-touch-icon.png +0 -0
- data/dummy/psql/public/favicon.ico +0 -0
- data/dummy/psql/public/robots.txt +0 -1
- data/dummy/psql/tmp/.keep +0 -0
- data/dummy/psql/tmp/pids/.keep +0 -0
data/lib/backy/pg_dump.rb
CHANGED
@@ -1,32 +1,86 @@
|
|
1
|
+
require "fileutils"
|
2
|
+
require "etc"
|
3
|
+
|
1
4
|
module Backy
|
2
5
|
class PgDump
|
3
6
|
include Db
|
4
7
|
include AppConfig
|
5
8
|
|
6
9
|
DUMP_DIR = "db/dump"
|
7
|
-
DUMP_CMD_OPTS = "--no-acl --no-owner --no-subscriptions --no-publications
|
10
|
+
DUMP_CMD_OPTS = "--no-acl --no-owner --no-subscriptions --no-publications"
|
8
11
|
|
9
12
|
def call
|
10
13
|
FileUtils.mkdir_p(DUMP_DIR)
|
14
|
+
Logger.log("Starting backy for #{database}")
|
15
|
+
|
16
|
+
if use_parallel?
|
17
|
+
Logger.log("Using multicore dump with pigz")
|
18
|
+
parallel_backup
|
19
|
+
else
|
20
|
+
Logger.log("Using single core dump")
|
21
|
+
plain_text_backup
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
private
|
11
26
|
|
12
|
-
|
27
|
+
def plain_text_backup
|
28
|
+
timestamp = Time.now.strftime("%Y%m%d_%H%M%S")
|
29
|
+
dump_file = "#{DUMP_DIR}/#{database}_#{whoami}@#{hostname}_single_#{timestamp}.sql.gz"
|
13
30
|
|
14
31
|
cmd = "(#{pg_password_env}pg_dump #{pg_credentials} #{database} #{DUMP_CMD_OPTS} | gzip -9 > #{dump_file}) 2>&1 >> #{log_file}"
|
15
32
|
|
16
33
|
print "Saving to #{dump_file} ... "
|
17
34
|
|
18
35
|
if system(cmd)
|
19
|
-
|
36
|
+
Logger.success("done")
|
20
37
|
else
|
21
|
-
|
22
|
-
|
38
|
+
Logger.error("error. See #{log_file}")
|
23
39
|
return
|
24
40
|
end
|
25
41
|
|
26
42
|
dump_file
|
27
43
|
end
|
28
44
|
|
29
|
-
|
45
|
+
def parallel_backup
|
46
|
+
timestamp = Time.now.strftime("%Y%m%d_%H%M%S")
|
47
|
+
dump_dir = "#{DUMP_DIR}/#{database}_dump_parallel_#{timestamp}"
|
48
|
+
dump_file = "#{dump_dir}.tar.gz"
|
49
|
+
|
50
|
+
pg_dump_cmd = "pg_dump -Z0 -j #{Etc.nprocessors} -Fd #{database} -f #{dump_dir} #{pg_credentials} #{DUMP_CMD_OPTS}"
|
51
|
+
tar_cmd = "tar -cf - #{dump_dir} | pigz -p #{Etc.nprocessors} > #{dump_file}"
|
52
|
+
cleanup_cmd = "rm -rf #{dump_dir}"
|
53
|
+
|
54
|
+
Logger.log("Running pg_dump #{database}")
|
55
|
+
if system("#{pg_password_env}#{pg_dump_cmd} 2>&1 >> #{log_file}")
|
56
|
+
Logger.log("pg_dump completed successfully.")
|
57
|
+
else
|
58
|
+
Logger.error("pg_dump failed. See #{log_file} for details.")
|
59
|
+
return
|
60
|
+
end
|
61
|
+
|
62
|
+
# Execute tar command
|
63
|
+
Logger.log("Compressing #{dump_dir}")
|
64
|
+
if system(tar_cmd)
|
65
|
+
Logger.log("Compression completed successfully.")
|
66
|
+
else
|
67
|
+
Logger.error("Compression failed. See #{log_file} for details.")
|
68
|
+
return
|
69
|
+
end
|
70
|
+
|
71
|
+
# Execute cleanup command
|
72
|
+
Logger.log("Cleaning up #{dump_dir}")
|
73
|
+
if system(cleanup_cmd)
|
74
|
+
Logger.log("Cleanup completed successfully.")
|
75
|
+
else
|
76
|
+
Logger.error("Cleanup failed. See #{log_file} for details.")
|
77
|
+
return
|
78
|
+
end
|
79
|
+
|
80
|
+
Logger.success("Backup process completed. Output file: #{dump_file}")
|
81
|
+
|
82
|
+
dump_file # Return the name of the dump file
|
83
|
+
end
|
30
84
|
|
31
85
|
def hostname
|
32
86
|
@hostname ||= `hostname`.strip
|
data/lib/backy/pg_restore.rb
CHANGED
@@ -3,25 +3,91 @@ module Backy
|
|
3
3
|
include Db
|
4
4
|
include AppConfig
|
5
5
|
|
6
|
+
DUMP_DIR = "db/dump"
|
7
|
+
|
6
8
|
def initialize(file_name:)
|
7
9
|
@file_name = file_name
|
8
10
|
end
|
9
11
|
|
10
12
|
def call
|
11
|
-
|
12
|
-
|
13
|
+
pigz_installed = system('which pigz > /dev/null 2>&1')
|
14
|
+
multicore = Etc.nprocessors > 1
|
15
|
+
use_multicore = ENV["BACKY_USE_PARALLEL"] == "true"
|
13
16
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
puts "done"
|
17
|
+
if pigz_installed && multicore && use_multicore
|
18
|
+
Logger.log('Using parallel restore with pigz')
|
19
|
+
parallel_restore
|
18
20
|
else
|
19
|
-
|
21
|
+
Logger.log("Pigz not installed or system is not multicore")
|
22
|
+
Logger.log('Using plain text restore')
|
23
|
+
plain_text_restore
|
20
24
|
end
|
21
25
|
end
|
22
26
|
|
23
27
|
private
|
24
28
|
|
25
29
|
attr_reader :file_name
|
30
|
+
|
31
|
+
def plain_text_restore
|
32
|
+
cmd = "(#{pg_password_env}psql -c \"#{terminate_connection_sql};\" #{pg_credentials} #{database}; #{pg_password_env}dropdb #{pg_credentials} #{database}; #{pg_password_env}createdb #{pg_credentials} #{database}; gunzip -c #{file_name} | #{pg_password_env}psql #{pg_credentials} -q -d #{database}) 2>&1 >> #{log_file}"
|
33
|
+
|
34
|
+
Logger.log("Restoring #{database} from #{file_name} ...")
|
35
|
+
if system(cmd)
|
36
|
+
Logger.log("Database restoration completed successfully.")
|
37
|
+
else
|
38
|
+
Logger.log("Database restoration failed. See #{log_file} for details.")
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
def parallel_restore
|
43
|
+
timestamp = Time.now.strftime("%Y%m%d_%H%M%S")
|
44
|
+
dump_dir = "#{DUMP_DIR}/#{database}_dump_#{timestamp}"
|
45
|
+
FileUtils.mkdir_p(dump_dir)
|
46
|
+
|
47
|
+
decompress_cmd = "pigz -p #{Etc.nprocessors} -dc #{file_name} | tar -C #{dump_dir} --strip-components 3 -xf -"
|
48
|
+
restore_cmd = "pg_restore -j #{Etc.nprocessors} -Fd -O -d #{database} #{dump_dir}"
|
49
|
+
|
50
|
+
# Terminate connections and drop/create database
|
51
|
+
terminate_and_recreate_db = "(#{pg_password_env}psql -c \"#{terminate_connection_sql};\" #{pg_credentials} #{database}; #{pg_password_env}dropdb #{pg_credentials} #{database}; #{pg_password_env}createdb #{pg_credentials} #{database}) 2>&1 >> #{log_file}"
|
52
|
+
|
53
|
+
Logger.log("Terminating connections to #{database}")
|
54
|
+
if system(terminate_and_recreate_db)
|
55
|
+
Logger.log("Database connections terminated and database recreated.")
|
56
|
+
else
|
57
|
+
Logger.log("Error during database termination and recreation. See #{log_file}")
|
58
|
+
return
|
59
|
+
end
|
60
|
+
|
61
|
+
# Decompress and restore
|
62
|
+
Logger.log("Decompressing #{file_name} into #{dump_dir} ...")
|
63
|
+
if system(decompress_cmd)
|
64
|
+
Logger.log("Decompression completed successfully.")
|
65
|
+
|
66
|
+
# Check the expected file
|
67
|
+
unless File.exist?("#{dump_dir}/toc.dat")
|
68
|
+
Logger.log("toc.dat not found in #{dump_dir}.")
|
69
|
+
return
|
70
|
+
end
|
71
|
+
else
|
72
|
+
Logger.log("Decompression failed. See #{log_file} for details.")
|
73
|
+
return
|
74
|
+
end
|
75
|
+
|
76
|
+
Logger.log("Restoring database from #{dump_dir} ...")
|
77
|
+
if system(restore_cmd)
|
78
|
+
Logger.log("Database restoration completed successfully.")
|
79
|
+
else
|
80
|
+
Logger.log("Database restoration failed. See #{log_file} for details.")
|
81
|
+
return
|
82
|
+
end
|
83
|
+
|
84
|
+
Logger.log("Cleanup: Removing #{dump_dir} ...")
|
85
|
+
FileUtils.rm_rf(dump_dir)
|
86
|
+
Logger.log("Cleanup completed.")
|
87
|
+
end
|
88
|
+
|
89
|
+
def terminate_connection_sql
|
90
|
+
"SELECT pg_terminate_backend(pg_stat_activity.pid) FROM pg_stat_activity WHERE pg_stat_activity.datname = '#{database}' AND pid <> pg_backend_pid();"
|
91
|
+
end
|
26
92
|
end
|
27
93
|
end
|
data/lib/backy/version.rb
CHANGED
@@ -1,12 +1,15 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require "active_support"
|
3
4
|
require "active_support/core_ext/integer/time"
|
4
5
|
require "active_support/core_ext/object/blank"
|
5
6
|
|
7
|
+
require_relative "backy/cli"
|
6
8
|
require_relative "backy/configuration"
|
7
9
|
require_relative "backy/app_config"
|
8
10
|
require_relative "backy/db"
|
9
11
|
require_relative "backy/list"
|
12
|
+
require_relative "backy/logger"
|
10
13
|
require_relative "backy/pg_dump"
|
11
14
|
require_relative "backy/pg_restore"
|
12
15
|
require_relative "backy/s3"
|
@@ -27,4 +30,16 @@ module Backy
|
|
27
30
|
def self.configuration
|
28
31
|
@configuration ||= Configuration.new
|
29
32
|
end
|
33
|
+
|
34
|
+
def self.setup
|
35
|
+
Logger.log("Setting up Backy...")
|
36
|
+
configuration.load
|
37
|
+
setup_logging
|
38
|
+
end
|
39
|
+
|
40
|
+
def self.setup_logging
|
41
|
+
log_file = configuration.log_file
|
42
|
+
log_dir = File.dirname(log_file)
|
43
|
+
FileUtils.mkdir_p(log_dir) unless Dir.exist?(log_dir)
|
44
|
+
end
|
30
45
|
end
|
metadata
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: backy_rb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alexey Kharchenko
|
8
8
|
- Martin Ulleberg
|
9
9
|
- Pål André Sundt
|
10
10
|
autorequire:
|
11
|
-
bindir:
|
11
|
+
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2023-
|
13
|
+
date: 2023-12-28 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rspec
|
@@ -124,6 +124,48 @@ dependencies:
|
|
124
124
|
- - "~>"
|
125
125
|
- !ruby/object:Gem::Version
|
126
126
|
version: 0.9.6
|
127
|
+
- !ruby/object:Gem::Dependency
|
128
|
+
name: zlib
|
129
|
+
requirement: !ruby/object:Gem::Requirement
|
130
|
+
requirements:
|
131
|
+
- - "~>"
|
132
|
+
- !ruby/object:Gem::Version
|
133
|
+
version: '3.0'
|
134
|
+
type: :development
|
135
|
+
prerelease: false
|
136
|
+
version_requirements: !ruby/object:Gem::Requirement
|
137
|
+
requirements:
|
138
|
+
- - "~>"
|
139
|
+
- !ruby/object:Gem::Version
|
140
|
+
version: '3.0'
|
141
|
+
- !ruby/object:Gem::Dependency
|
142
|
+
name: rails
|
143
|
+
requirement: !ruby/object:Gem::Requirement
|
144
|
+
requirements:
|
145
|
+
- - ">="
|
146
|
+
- !ruby/object:Gem::Version
|
147
|
+
version: '4.0'
|
148
|
+
type: :development
|
149
|
+
prerelease: false
|
150
|
+
version_requirements: !ruby/object:Gem::Requirement
|
151
|
+
requirements:
|
152
|
+
- - ">="
|
153
|
+
- !ruby/object:Gem::Version
|
154
|
+
version: '4.0'
|
155
|
+
- !ruby/object:Gem::Dependency
|
156
|
+
name: faker
|
157
|
+
requirement: !ruby/object:Gem::Requirement
|
158
|
+
requirements:
|
159
|
+
- - ">="
|
160
|
+
- !ruby/object:Gem::Version
|
161
|
+
version: '3.1'
|
162
|
+
type: :development
|
163
|
+
prerelease: false
|
164
|
+
version_requirements: !ruby/object:Gem::Requirement
|
165
|
+
requirements:
|
166
|
+
- - ">="
|
167
|
+
- !ruby/object:Gem::Version
|
168
|
+
version: '3.1'
|
127
169
|
- !ruby/object:Gem::Dependency
|
128
170
|
name: activerecord
|
129
171
|
requirement: !ruby/object:Gem::Requirement
|
@@ -173,10 +215,12 @@ email:
|
|
173
215
|
- akharchenko@gmail.com
|
174
216
|
- martin.ulleberg@gmail.com
|
175
217
|
- pal@rubynor.com
|
176
|
-
executables:
|
218
|
+
executables:
|
219
|
+
- backy
|
177
220
|
extensions: []
|
178
221
|
extra_rdoc_files: []
|
179
222
|
files:
|
223
|
+
- ".backyrc.example"
|
180
224
|
- ".drone.yml"
|
181
225
|
- ".idea/.gitignore"
|
182
226
|
- ".rspec"
|
@@ -186,70 +230,17 @@ files:
|
|
186
230
|
- Gemfile.lock
|
187
231
|
- README.md
|
188
232
|
- Rakefile
|
189
|
-
-
|
233
|
+
- backy_rb.gemspec
|
234
|
+
- bin/backy
|
190
235
|
- bucky.png
|
191
236
|
- config/database.example.yml
|
192
|
-
- dummy/psql/.gitattributes
|
193
|
-
- dummy/psql/.gitignore
|
194
|
-
- dummy/psql/.ruby-version
|
195
237
|
- dummy/psql/Gemfile
|
196
|
-
- dummy/psql/Gemfile.lock
|
197
|
-
- dummy/psql/README.md
|
198
|
-
- dummy/psql/Rakefile
|
199
|
-
- dummy/psql/app/assets/config/manifest.js
|
200
|
-
- dummy/psql/app/assets/images/.keep
|
201
|
-
- dummy/psql/app/assets/stylesheets/application.css
|
202
|
-
- dummy/psql/app/controllers/application_controller.rb
|
203
|
-
- dummy/psql/app/controllers/concerns/.keep
|
204
|
-
- dummy/psql/app/controllers/posts_controller.rb
|
205
|
-
- dummy/psql/app/helpers/application_helper.rb
|
206
|
-
- dummy/psql/app/helpers/posts_helper.rb
|
207
|
-
- dummy/psql/app/models/application_record.rb
|
208
|
-
- dummy/psql/app/models/concerns/.keep
|
209
|
-
- dummy/psql/app/models/post.rb
|
210
|
-
- dummy/psql/app/views/layouts/application.html.erb
|
211
|
-
- dummy/psql/app/views/posts/_form.html.erb
|
212
|
-
- dummy/psql/app/views/posts/_post.html.erb
|
213
|
-
- dummy/psql/app/views/posts/edit.html.erb
|
214
|
-
- dummy/psql/app/views/posts/index.html.erb
|
215
|
-
- dummy/psql/app/views/posts/new.html.erb
|
216
|
-
- dummy/psql/app/views/posts/show.html.erb
|
217
|
-
- dummy/psql/bin/bundle
|
218
|
-
- dummy/psql/bin/rails
|
219
|
-
- dummy/psql/bin/rake
|
220
|
-
- dummy/psql/bin/setup
|
221
|
-
- dummy/psql/config.ru
|
222
|
-
- dummy/psql/config/application.rb
|
223
|
-
- dummy/psql/config/boot.rb
|
224
|
-
- dummy/psql/config/credentials.yml.enc
|
225
|
-
- dummy/psql/config/database.yml
|
226
|
-
- dummy/psql/config/environment.rb
|
227
|
-
- dummy/psql/config/environments/development.rb
|
228
|
-
- dummy/psql/config/environments/production.rb
|
229
|
-
- dummy/psql/config/environments/test.rb
|
230
|
-
- dummy/psql/config/locales/en.yml
|
231
|
-
- dummy/psql/config/master.key
|
232
|
-
- dummy/psql/config/puma.rb
|
233
|
-
- dummy/psql/config/routes.rb
|
234
|
-
- dummy/psql/db/migrate/20230330203226_create_posts.rb
|
235
|
-
- dummy/psql/db/schema.rb
|
236
|
-
- dummy/psql/db/seeds.rb
|
237
|
-
- dummy/psql/log/.keep
|
238
|
-
- dummy/psql/public/404.html
|
239
|
-
- dummy/psql/public/422.html
|
240
|
-
- dummy/psql/public/500.html
|
241
|
-
- dummy/psql/public/apple-touch-icon-precomposed.png
|
242
|
-
- dummy/psql/public/apple-touch-icon.png
|
243
|
-
- dummy/psql/public/favicon.ico
|
244
|
-
- dummy/psql/public/robots.txt
|
245
|
-
- dummy/psql/tmp/.keep
|
246
|
-
- dummy/psql/tmp/pids/.keep
|
247
|
-
- lib/backy.rb
|
248
238
|
- lib/backy/app_config.rb
|
249
239
|
- lib/backy/cli.rb
|
250
240
|
- lib/backy/configuration.rb
|
251
241
|
- lib/backy/db.rb
|
252
242
|
- lib/backy/list.rb
|
243
|
+
- lib/backy/logger.rb
|
253
244
|
- lib/backy/pg_dump.rb
|
254
245
|
- lib/backy/pg_restore.rb
|
255
246
|
- lib/backy/railtie.rb
|
@@ -258,6 +249,7 @@ files:
|
|
258
249
|
- lib/backy/s3_load.rb
|
259
250
|
- lib/backy/s3_save.rb
|
260
251
|
- lib/backy/version.rb
|
252
|
+
- lib/backy_rb.rb
|
261
253
|
- lib/tasks/backy_tasks.rake
|
262
254
|
homepage: https://rubynor.com
|
263
255
|
licenses: []
|
@@ -280,7 +272,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
280
272
|
- !ruby/object:Gem::Version
|
281
273
|
version: '0'
|
282
274
|
requirements: []
|
283
|
-
rubygems_version: 3.4.
|
275
|
+
rubygems_version: 3.4.22
|
284
276
|
signing_key:
|
285
277
|
specification_version: 4
|
286
278
|
summary: Backy is a powerful and user-friendly database backup gem designed specifically
|
data/dummy/psql/.gitattributes
DELETED
data/dummy/psql/.gitignore
DELETED
@@ -1,22 +0,0 @@
|
|
1
|
-
# See https://help.github.com/articles/ignoring-files for more about ignoring files.
|
2
|
-
#
|
3
|
-
# If you find yourself ignoring temporary files generated by your text editor
|
4
|
-
# or operating system, you probably want to add a global ignore instead:
|
5
|
-
# git config --global core.excludesfile '~/.gitignore_global'
|
6
|
-
|
7
|
-
# Ignore bundler config.
|
8
|
-
/.bundle
|
9
|
-
|
10
|
-
# Ignore all logfiles and tempfiles.
|
11
|
-
/log/*
|
12
|
-
/tmp/*
|
13
|
-
!/log/.keep
|
14
|
-
!/tmp/.keep
|
15
|
-
|
16
|
-
# Ignore pidfiles, but keep the directory.
|
17
|
-
/tmp/pids/*
|
18
|
-
!/tmp/pids/
|
19
|
-
!/tmp/pids/.keep
|
20
|
-
|
21
|
-
|
22
|
-
/public/assets
|
data/dummy/psql/.ruby-version
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
ruby-3.2.0
|
data/dummy/psql/Gemfile.lock
DELETED
@@ -1,207 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: ../..
|
3
|
-
specs:
|
4
|
-
backy (0.1.3)
|
5
|
-
activerecord (>= 4.0)
|
6
|
-
activesupport (>= 4.0)
|
7
|
-
aws-sdk-s3 (>= 1.117)
|
8
|
-
|
9
|
-
GEM
|
10
|
-
remote: https://rubygems.org/
|
11
|
-
specs:
|
12
|
-
actioncable (7.0.4.3)
|
13
|
-
actionpack (= 7.0.4.3)
|
14
|
-
activesupport (= 7.0.4.3)
|
15
|
-
nio4r (~> 2.0)
|
16
|
-
websocket-driver (>= 0.6.1)
|
17
|
-
actionmailbox (7.0.4.3)
|
18
|
-
actionpack (= 7.0.4.3)
|
19
|
-
activejob (= 7.0.4.3)
|
20
|
-
activerecord (= 7.0.4.3)
|
21
|
-
activestorage (= 7.0.4.3)
|
22
|
-
activesupport (= 7.0.4.3)
|
23
|
-
mail (>= 2.7.1)
|
24
|
-
net-imap
|
25
|
-
net-pop
|
26
|
-
net-smtp
|
27
|
-
actionmailer (7.0.4.3)
|
28
|
-
actionpack (= 7.0.4.3)
|
29
|
-
actionview (= 7.0.4.3)
|
30
|
-
activejob (= 7.0.4.3)
|
31
|
-
activesupport (= 7.0.4.3)
|
32
|
-
mail (~> 2.5, >= 2.5.4)
|
33
|
-
net-imap
|
34
|
-
net-pop
|
35
|
-
net-smtp
|
36
|
-
rails-dom-testing (~> 2.0)
|
37
|
-
actionpack (7.0.4.3)
|
38
|
-
actionview (= 7.0.4.3)
|
39
|
-
activesupport (= 7.0.4.3)
|
40
|
-
rack (~> 2.0, >= 2.2.0)
|
41
|
-
rack-test (>= 0.6.3)
|
42
|
-
rails-dom-testing (~> 2.0)
|
43
|
-
rails-html-sanitizer (~> 1.0, >= 1.2.0)
|
44
|
-
actiontext (7.0.4.3)
|
45
|
-
actionpack (= 7.0.4.3)
|
46
|
-
activerecord (= 7.0.4.3)
|
47
|
-
activestorage (= 7.0.4.3)
|
48
|
-
activesupport (= 7.0.4.3)
|
49
|
-
globalid (>= 0.6.0)
|
50
|
-
nokogiri (>= 1.8.5)
|
51
|
-
actionview (7.0.4.3)
|
52
|
-
activesupport (= 7.0.4.3)
|
53
|
-
builder (~> 3.1)
|
54
|
-
erubi (~> 1.4)
|
55
|
-
rails-dom-testing (~> 2.0)
|
56
|
-
rails-html-sanitizer (~> 1.1, >= 1.2.0)
|
57
|
-
activejob (7.0.4.3)
|
58
|
-
activesupport (= 7.0.4.3)
|
59
|
-
globalid (>= 0.3.6)
|
60
|
-
activemodel (7.0.4.3)
|
61
|
-
activesupport (= 7.0.4.3)
|
62
|
-
activerecord (7.0.4.3)
|
63
|
-
activemodel (= 7.0.4.3)
|
64
|
-
activesupport (= 7.0.4.3)
|
65
|
-
activestorage (7.0.4.3)
|
66
|
-
actionpack (= 7.0.4.3)
|
67
|
-
activejob (= 7.0.4.3)
|
68
|
-
activerecord (= 7.0.4.3)
|
69
|
-
activesupport (= 7.0.4.3)
|
70
|
-
marcel (~> 1.0)
|
71
|
-
mini_mime (>= 1.1.0)
|
72
|
-
activesupport (7.0.4.3)
|
73
|
-
concurrent-ruby (~> 1.0, >= 1.0.2)
|
74
|
-
i18n (>= 1.6, < 2)
|
75
|
-
minitest (>= 5.1)
|
76
|
-
tzinfo (~> 2.0)
|
77
|
-
aws-eventstream (1.2.0)
|
78
|
-
aws-partitions (1.779.0)
|
79
|
-
aws-sdk-core (3.174.0)
|
80
|
-
aws-eventstream (~> 1, >= 1.0.2)
|
81
|
-
aws-partitions (~> 1, >= 1.651.0)
|
82
|
-
aws-sigv4 (~> 1.5)
|
83
|
-
jmespath (~> 1, >= 1.6.1)
|
84
|
-
aws-sdk-kms (1.66.0)
|
85
|
-
aws-sdk-core (~> 3, >= 3.174.0)
|
86
|
-
aws-sigv4 (~> 1.1)
|
87
|
-
aws-sdk-s3 (1.124.0)
|
88
|
-
aws-sdk-core (~> 3, >= 3.174.0)
|
89
|
-
aws-sdk-kms (~> 1)
|
90
|
-
aws-sigv4 (~> 1.4)
|
91
|
-
aws-sigv4 (1.5.2)
|
92
|
-
aws-eventstream (~> 1, >= 1.0.2)
|
93
|
-
builder (3.2.4)
|
94
|
-
concurrent-ruby (1.2.2)
|
95
|
-
crass (1.0.6)
|
96
|
-
date (3.3.3)
|
97
|
-
debug (1.7.2)
|
98
|
-
irb (>= 1.5.0)
|
99
|
-
reline (>= 0.3.1)
|
100
|
-
erubi (1.12.0)
|
101
|
-
faker (3.1.1)
|
102
|
-
i18n (>= 1.8.11, < 2)
|
103
|
-
globalid (1.1.0)
|
104
|
-
activesupport (>= 5.0)
|
105
|
-
i18n (1.12.0)
|
106
|
-
concurrent-ruby (~> 1.0)
|
107
|
-
io-console (0.6.0)
|
108
|
-
irb (1.6.3)
|
109
|
-
reline (>= 0.3.0)
|
110
|
-
jmespath (1.6.2)
|
111
|
-
loofah (2.19.1)
|
112
|
-
crass (~> 1.0.2)
|
113
|
-
nokogiri (>= 1.5.9)
|
114
|
-
mail (2.8.1)
|
115
|
-
mini_mime (>= 0.1.1)
|
116
|
-
net-imap
|
117
|
-
net-pop
|
118
|
-
net-smtp
|
119
|
-
marcel (1.0.2)
|
120
|
-
method_source (1.0.0)
|
121
|
-
mini_mime (1.1.2)
|
122
|
-
minitest (5.18.0)
|
123
|
-
net-imap (0.3.4)
|
124
|
-
date
|
125
|
-
net-protocol
|
126
|
-
net-pop (0.1.2)
|
127
|
-
net-protocol
|
128
|
-
net-protocol (0.2.1)
|
129
|
-
timeout
|
130
|
-
net-smtp (0.3.3)
|
131
|
-
net-protocol
|
132
|
-
nio4r (2.5.8)
|
133
|
-
nokogiri (1.14.2-arm64-darwin)
|
134
|
-
racc (~> 1.4)
|
135
|
-
nokogiri (1.14.2-x86_64-linux)
|
136
|
-
racc (~> 1.4)
|
137
|
-
pg (1.4.6)
|
138
|
-
puma (5.6.5)
|
139
|
-
nio4r (~> 2.0)
|
140
|
-
racc (1.6.2)
|
141
|
-
rack (2.2.6.4)
|
142
|
-
rack-test (2.1.0)
|
143
|
-
rack (>= 1.3)
|
144
|
-
rails (7.0.4.3)
|
145
|
-
actioncable (= 7.0.4.3)
|
146
|
-
actionmailbox (= 7.0.4.3)
|
147
|
-
actionmailer (= 7.0.4.3)
|
148
|
-
actionpack (= 7.0.4.3)
|
149
|
-
actiontext (= 7.0.4.3)
|
150
|
-
actionview (= 7.0.4.3)
|
151
|
-
activejob (= 7.0.4.3)
|
152
|
-
activemodel (= 7.0.4.3)
|
153
|
-
activerecord (= 7.0.4.3)
|
154
|
-
activestorage (= 7.0.4.3)
|
155
|
-
activesupport (= 7.0.4.3)
|
156
|
-
bundler (>= 1.15.0)
|
157
|
-
railties (= 7.0.4.3)
|
158
|
-
rails-dom-testing (2.0.3)
|
159
|
-
activesupport (>= 4.2.0)
|
160
|
-
nokogiri (>= 1.6)
|
161
|
-
rails-html-sanitizer (1.5.0)
|
162
|
-
loofah (~> 2.19, >= 2.19.1)
|
163
|
-
railties (7.0.4.3)
|
164
|
-
actionpack (= 7.0.4.3)
|
165
|
-
activesupport (= 7.0.4.3)
|
166
|
-
method_source
|
167
|
-
rake (>= 12.2)
|
168
|
-
thor (~> 1.0)
|
169
|
-
zeitwerk (~> 2.5)
|
170
|
-
rake (13.0.6)
|
171
|
-
reline (0.3.3)
|
172
|
-
io-console (~> 0.5)
|
173
|
-
sprockets (4.2.0)
|
174
|
-
concurrent-ruby (~> 1.0)
|
175
|
-
rack (>= 2.2.4, < 4)
|
176
|
-
sprockets-rails (3.4.2)
|
177
|
-
actionpack (>= 5.2)
|
178
|
-
activesupport (>= 5.2)
|
179
|
-
sprockets (>= 3.0.0)
|
180
|
-
thor (1.2.1)
|
181
|
-
timeout (0.3.2)
|
182
|
-
tzinfo (2.0.6)
|
183
|
-
concurrent-ruby (~> 1.0)
|
184
|
-
websocket-driver (0.7.5)
|
185
|
-
websocket-extensions (>= 0.1.0)
|
186
|
-
websocket-extensions (0.1.5)
|
187
|
-
zeitwerk (2.6.7)
|
188
|
-
|
189
|
-
PLATFORMS
|
190
|
-
arm64-darwin-22
|
191
|
-
x86_64-linux
|
192
|
-
|
193
|
-
DEPENDENCIES
|
194
|
-
backy!
|
195
|
-
debug
|
196
|
-
faker (~> 3.1)
|
197
|
-
pg (~> 1.1)
|
198
|
-
puma (~> 5.0)
|
199
|
-
rails (~> 7.0.4, >= 7.0.4.2)
|
200
|
-
sprockets-rails
|
201
|
-
tzinfo-data
|
202
|
-
|
203
|
-
RUBY VERSION
|
204
|
-
ruby 3.2.0p0
|
205
|
-
|
206
|
-
BUNDLED WITH
|
207
|
-
2.4.8
|
data/dummy/psql/README.md
DELETED
@@ -1,24 +0,0 @@
|
|
1
|
-
# README
|
2
|
-
|
3
|
-
This README would normally document whatever steps are necessary to get the
|
4
|
-
application up and running.
|
5
|
-
|
6
|
-
Things you may want to cover:
|
7
|
-
|
8
|
-
* Ruby version
|
9
|
-
|
10
|
-
* System dependencies
|
11
|
-
|
12
|
-
* Configuration
|
13
|
-
|
14
|
-
* Database creation
|
15
|
-
|
16
|
-
* Database initialization
|
17
|
-
|
18
|
-
* How to run the test suite
|
19
|
-
|
20
|
-
* Services (job queues, cache servers, search engines, etc.)
|
21
|
-
|
22
|
-
* Deployment instructions
|
23
|
-
|
24
|
-
* ...
|
data/dummy/psql/Rakefile
DELETED
File without changes
|