sequel-db_tasks 0.1.0 → 0.2.0
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/README.md +27 -3
- data/lib/sequel/db_tasks.rb +0 -1
- data/lib/sequel/db_tasks/tasks.rake +51 -22
- data/sequel-db_tasks.gemspec +3 -3
- metadata +16 -3
- data/lib/sequel/db_tasks/version.rb +0 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: aa4f1f71edc8b104b15f64cded74d7cbe0d16029038763e7d4b23491292f3c25
|
4
|
+
data.tar.gz: f07aebf68979b26281e503df1c715ef444e44e2e4950b0f971f7f68a18b8a5f7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2120f3f8cd89095ce6e8aa2cd83d2e2a75539a51007d8e5f4c7a2baf52a18e98de4f54a0d93b2f787c604144a0e1391fe0d03104a27dcd0594c73296325ccdfa
|
7
|
+
data.tar.gz: 94851bf553e1475ec1a4952dd9fbb30d4a2d95c8331bc9456ef561edd1aec4f417c961b5e3e10ae1d034d9d9bae945f6aa802d9e9be843bfd484d31c3dd9aa6e
|
data/README.md
CHANGED
@@ -2,10 +2,15 @@
|
|
2
2
|
Rake CLI tasks for Sequel ORM and Postgres. All available tasks:
|
3
3
|
|
4
4
|
```
|
5
|
+
rake db:create_user # Create database user
|
6
|
+
rake db:drop_user # Drop database user
|
7
|
+
|
5
8
|
rake db:create # Create database
|
6
9
|
rake db:drop # Drop database
|
10
|
+
|
7
11
|
rake db:gm[name] # Generate migration file
|
8
12
|
rake db:migrate[version] # Run migrations
|
13
|
+
|
9
14
|
rake db:schema:print # Print current database schema
|
10
15
|
```
|
11
16
|
|
@@ -42,8 +47,8 @@ You can tweak settings using configure block:
|
|
42
47
|
# Rakefile
|
43
48
|
|
44
49
|
Sequel::DbTasks.configure do |config|
|
45
|
-
database_url
|
46
|
-
migrations_path
|
50
|
+
config.database_url = ENV["DATABASE_URL"] # default value
|
51
|
+
config.migrations_path = "db/migrate" # default value
|
47
52
|
end
|
48
53
|
|
49
54
|
Sequel::DbTasks.load!
|
@@ -51,7 +56,26 @@ Sequel::DbTasks.load!
|
|
51
56
|
|
52
57
|
## Notes
|
53
58
|
|
54
|
-
Inspired by https://github.com/sandelius/sequel-rake
|
59
|
+
* Inspired by https://github.com/sandelius/sequel-rake
|
60
|
+
|
61
|
+
* Capistrano task to migrate database while deployning:
|
62
|
+
|
63
|
+
```ruby
|
64
|
+
# lib/capistrano/tasks/sequel_migrate.rake
|
65
|
+
|
66
|
+
namespace :deploy do
|
67
|
+
desc "Migrate sequel db"
|
68
|
+
task :migrate do
|
69
|
+
on roles(:all) do
|
70
|
+
within release_path do
|
71
|
+
execute :rake, 'db:migrate'
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
after 'deploy:updated', 'deploy:migrate'
|
78
|
+
```
|
55
79
|
|
56
80
|
## License
|
57
81
|
|
data/lib/sequel/db_tasks.rb
CHANGED
@@ -4,38 +4,67 @@ namespace :db do
|
|
4
4
|
task :preload do
|
5
5
|
require 'uri'
|
6
6
|
|
7
|
-
url = Sequel::DbTasks.configuration.database_url
|
8
|
-
uri = URI.parse(url)
|
7
|
+
@url = Sequel::DbTasks.configuration.database_url
|
8
|
+
uri = URI.parse(@url)
|
9
9
|
raise "DB adapter is not postgres" if uri.scheme != "postgres"
|
10
|
-
|
11
|
-
@conf = {
|
12
|
-
url: url,
|
13
|
-
db: uri.path.sub("/", ""),
|
14
|
-
host: uri.host,
|
15
|
-
port: uri.port,
|
16
|
-
user: uri.user,
|
17
|
-
password: uri.password
|
18
|
-
}
|
19
10
|
end
|
20
11
|
|
12
|
+
###
|
13
|
+
|
21
14
|
# https://www.postgresql.org/docs/current/app-createdb.html
|
22
15
|
desc "Create database"
|
23
16
|
task create: :preload do
|
24
|
-
env = { "
|
25
|
-
|
26
|
-
puts "Created database '#{@conf[:db]}'"
|
27
|
-
end
|
17
|
+
env = { "DATABASE_URL" => @url }
|
18
|
+
exec env, "postgressor", "createdb"
|
28
19
|
end
|
29
20
|
|
30
|
-
# https://www.postgresql.org/docs/
|
21
|
+
# https://www.postgresql.org/docs/current/app-dropdb.html
|
31
22
|
desc "Drop database"
|
32
23
|
task drop: :preload do
|
33
|
-
env = { "
|
34
|
-
|
35
|
-
|
36
|
-
|
24
|
+
env = { "DATABASE_URL" => @url }
|
25
|
+
exec env, "postgressor", "dropdb"
|
26
|
+
end
|
27
|
+
|
28
|
+
###
|
29
|
+
|
30
|
+
# https://www.postgresql.org/docs/current/app-pgdump.html
|
31
|
+
desc "Dump (backup) database"
|
32
|
+
task dump: :preload do
|
33
|
+
env = { "DATABASE_URL" => @url }
|
34
|
+
exec env, "postgressor", "dumpdb"
|
35
|
+
end
|
36
|
+
|
37
|
+
# https://www.postgresql.org/docs/current/app-pgrestore.html
|
38
|
+
desc "Restore database from backup"
|
39
|
+
task :restore, [:restore_dump_file_path] do |t, args|
|
40
|
+
raise "Restore dump file path is not provided" unless args.restore_dump_file_path
|
41
|
+
Rake::Task["db:preload"].execute
|
42
|
+
|
43
|
+
env = { "DATABASE_URL" => @url }
|
44
|
+
command = ["postgressor", "restoredb", args.restore_dump_file_path]
|
45
|
+
command << "--switch_to_superuser" if ENV["AS_SUPERUSER"] == "true"
|
46
|
+
|
47
|
+
exec env, *command
|
37
48
|
end
|
38
49
|
|
50
|
+
###
|
51
|
+
|
52
|
+
# https://www.postgresql.org/docs/current/app-createuser.html
|
53
|
+
desc "Create database user" # superuser is optional
|
54
|
+
task create_user: :preload do
|
55
|
+
env = { "DATABASE_URL" => @url }
|
56
|
+
exec env, "postgressor", "createuser"
|
57
|
+
end
|
58
|
+
|
59
|
+
# https://www.postgresql.org/docs/current/app-dropuser.html
|
60
|
+
desc "Drop database user"
|
61
|
+
task drop_user: :preload do
|
62
|
+
env = { "DATABASE_URL" => @url }
|
63
|
+
exec env, "postgressor", "dropuser"
|
64
|
+
end
|
65
|
+
|
66
|
+
###
|
67
|
+
|
39
68
|
# https://github.com/jeremyevans/sequel/blob/master/doc/migration.rdoc#a-basic-migration
|
40
69
|
desc "Generate migration file"
|
41
70
|
task :gm, [:name] do |t, args|
|
@@ -69,7 +98,7 @@ namespace :db do
|
|
69
98
|
Sequel.extension :migration
|
70
99
|
version = args[:version].to_i if args[:version]
|
71
100
|
|
72
|
-
Sequel.connect(@
|
101
|
+
Sequel.connect(@url, logger: Logger.new(STDOUT)) do |db|
|
73
102
|
Sequel::Migrator.run(db, Sequel::DbTasks.configuration.migrations_path, target: version)
|
74
103
|
end
|
75
104
|
end
|
@@ -77,6 +106,6 @@ namespace :db do
|
|
77
106
|
# https://github.com/jeremyevans/sequel/blob/master/doc/migration.rdoc#dumping-the-current-schema-as-a-migration
|
78
107
|
desc "Print current database schema"
|
79
108
|
task :'schema:print' => :preload do
|
80
|
-
exec "bundle", "exec", "sequel", "-d", @
|
109
|
+
exec "bundle", "exec", "sequel", "-d", @url
|
81
110
|
end
|
82
111
|
end
|
data/sequel-db_tasks.gemspec
CHANGED
@@ -1,11 +1,9 @@
|
|
1
|
-
|
2
1
|
lib = File.expand_path("../lib", __FILE__)
|
3
2
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
-
require "sequel/db_tasks/version"
|
5
3
|
|
6
4
|
Gem::Specification.new do |spec|
|
7
5
|
spec.name = "sequel-db_tasks"
|
8
|
-
spec.version =
|
6
|
+
spec.version = "0.2.0"
|
9
7
|
spec.authors = ["Victor Afanasev"]
|
10
8
|
spec.email = ["vicfreefly@gmail.com"]
|
11
9
|
|
@@ -22,6 +20,8 @@ Gem::Specification.new do |spec|
|
|
22
20
|
spec.require_paths = ["lib"]
|
23
21
|
|
24
22
|
spec.add_dependency "sequel"
|
23
|
+
spec.add_dependency "postgressor"
|
24
|
+
|
25
25
|
spec.add_development_dependency "bundler", "~> 1.16"
|
26
26
|
spec.add_development_dependency "rake", "~> 10.0"
|
27
27
|
spec.add_development_dependency "minitest", "~> 5.0"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sequel-db_tasks
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Victor Afanasev
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-01-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sequel
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: postgressor
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: bundler
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -82,7 +96,6 @@ files:
|
|
82
96
|
- bin/setup
|
83
97
|
- lib/sequel/db_tasks.rb
|
84
98
|
- lib/sequel/db_tasks/tasks.rake
|
85
|
-
- lib/sequel/db_tasks/version.rb
|
86
99
|
- sequel-db_tasks.gemspec
|
87
100
|
homepage: https://github.com/vifreefly/sequel-db_tasks
|
88
101
|
licenses:
|