sequel-rails 0.4.1 → 0.4.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +15 -0
- data/History.md +12 -0
- data/README.md +1 -0
- data/lib/sequel_rails.rb +1 -5
- data/lib/sequel_rails/configuration.rb +1 -1
- data/lib/sequel_rails/railtie.rb +3 -1
- data/lib/sequel_rails/railties/database.rake +50 -5
- data/lib/sequel_rails/storage.rb +8 -0
- data/lib/sequel_rails/storage/abstract.rb +12 -0
- data/lib/sequel_rails/storage/postgres.rb +26 -0
- data/lib/sequel_rails/version.rb +1 -1
- metadata +29 -49
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
NTk2YTY3ZWMxMDZjZGUxZTljODFiODAwOTQ0YjA4ZGQ4NGZjYWRhYQ==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
OTlhZGU5ODc5NzI2YTI2NmFhZTcxNDc3MDRlNGM3MmE3ZmQ2MGNkNQ==
|
7
|
+
!binary "U0hBNTEy":
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
NDM4NGVkZTBhMWNlYzk1MTEyMTc3NGMwZDFmZTQyNzFjNzliNDc4MTEzNDEx
|
10
|
+
OGRmZmNhNWIzMGRiMzIwMTIzNWEwNzI1MjBkNjcxMWYyMDBjZDhiN2E3NzIx
|
11
|
+
NTY3NTlkNmNmOWY5NGJiZjgyZjIwN2FmNjFiNWY2YjM2NzM1YTM=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
NGY0NjZjOWZmMGUzYjVhMDg0M2QwNjlhYmIzYzg1ODBjNWViMmIzMmM4NjQw
|
14
|
+
MGI4YzliZDEzNDFhYzlhY2M1MWU0ZjQ5ZDJiZDFhMDFjMTRlMDI1OGU2MTIx
|
15
|
+
ZDkzM2NkMWY2ZTk5ZTZlM2JjZjM1YTdlYzk2YjlhNWM4ZmQyZTI=
|
data/History.md
CHANGED
@@ -1,3 +1,15 @@
|
|
1
|
+
0.4.2 (2013-03-18)
|
2
|
+
==================
|
3
|
+
|
4
|
+
* Add schema dump format option and sql dump/load for Postgresql (Rafał Rzepecki)
|
5
|
+
|
6
|
+
To make `rake db:dump` and `rake db:load` use sql format for schema instead
|
7
|
+
of the default ruby version, put in your `config/application.rb`:
|
8
|
+
```ruby
|
9
|
+
config.sequel.schema_format = :sql
|
10
|
+
```
|
11
|
+
* Improve detection of JRuby (Ed Ruder)
|
12
|
+
|
1
13
|
0.4.1 (2013-03-12)
|
2
14
|
==================
|
3
15
|
|
data/README.md
CHANGED
data/lib/sequel_rails.rb
CHANGED
@@ -3,10 +3,6 @@ require "sequel_rails/railtie" if defined? Rails
|
|
3
3
|
|
4
4
|
module SequelRails
|
5
5
|
def self.jruby?
|
6
|
-
|
7
|
-
RUBY_ENGINE == "jruby"
|
8
|
-
else
|
9
|
-
ENV['RUBY_VERSION'].to_s =~ /jruby/
|
10
|
-
end
|
6
|
+
(defined?(RUBY_ENGINE) && RUBY_ENGINE=="jruby") || defined?(JRUBY_VERSION)
|
11
7
|
end
|
12
8
|
end
|
data/lib/sequel_rails/railtie.rb
CHANGED
@@ -32,6 +32,8 @@ module SequelRails
|
|
32
32
|
"Sequel::ValidationFailed" => :unprocessable_entity,
|
33
33
|
"Sequel::NoExistingObject" => :unprocessable_entity
|
34
34
|
)
|
35
|
+
|
36
|
+
config.sequel = ActiveSupport::OrderedOptions.new
|
35
37
|
|
36
38
|
rake_tasks do
|
37
39
|
load "sequel_rails/railties/database.rake"
|
@@ -62,7 +64,7 @@ module SequelRails
|
|
62
64
|
def configure_sequel(app)
|
63
65
|
app.config.sequel = ::SequelRails::Configuration.for(
|
64
66
|
::Rails.root, app.config.database_configuration
|
65
|
-
)
|
67
|
+
).merge!(app.config.sequel)
|
66
68
|
end
|
67
69
|
|
68
70
|
def setup_i18n_support(app)
|
@@ -38,6 +38,51 @@ namespace :db do
|
|
38
38
|
end
|
39
39
|
end
|
40
40
|
|
41
|
+
namespace :structure do
|
42
|
+
desc "Dump the database structure to db/structure.sql. Specify another file with DB_STRUCTURE=db/my_structure.sql"
|
43
|
+
task :dump, [:env] => :environment do |t, args|
|
44
|
+
args.with_defaults(:env => Rails.env)
|
45
|
+
|
46
|
+
filename = ENV['DB_STRUCTURE'] || File.join(Rails.root, "db", "structure.sql")
|
47
|
+
unless SequelRails::Storage.dump_environment args.env, filename
|
48
|
+
abort "Could not dump structure for #{args.env}."
|
49
|
+
end
|
50
|
+
|
51
|
+
Rake::Task["db:structure:dump"].reenable
|
52
|
+
end
|
53
|
+
|
54
|
+
task :load, [:env] => :environment do |t, args|
|
55
|
+
args.with_defaults(:env => Rails.env)
|
56
|
+
|
57
|
+
filename = ENV['DB_STRUCTURE'] || File.join(Rails.root, "db", "structure.sql")
|
58
|
+
unless SequelRails::Storage.load_environment args.env, filename
|
59
|
+
abort "Could not load structure for #{args.env}."
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
task dump: :environment do
|
65
|
+
case (SequelRails.configuration.schema_format ||= :ruby)
|
66
|
+
when :ruby
|
67
|
+
Rake::Task["db:schema:dump"].invoke
|
68
|
+
when :sql
|
69
|
+
Rake::Task["db:structure:dump"].invoke
|
70
|
+
else
|
71
|
+
abort "unknown schema format #{SequelRails.configuration.schema_format}"
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
task load: :environment do
|
76
|
+
case (SequelRails.configuration.schema_format ||= :ruby)
|
77
|
+
when :ruby
|
78
|
+
Rake::Task["db:schema:load"].invoke
|
79
|
+
when :sql
|
80
|
+
Rake::Task["db:structure:load"].invoke
|
81
|
+
else
|
82
|
+
abort "unknown schema format #{SequelRails.configuration.schema_format}"
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
41
86
|
namespace :create do
|
42
87
|
desc 'Create all the local databases defined in config/database.yml'
|
43
88
|
task :all => :environment do
|
@@ -98,7 +143,7 @@ namespace :db do
|
|
98
143
|
version = ENV["VERSION"] ? ENV["VERSION"].to_i : nil
|
99
144
|
raise "VERSION is required" unless version
|
100
145
|
SequelRails::Migrations.migrate_up!(version)
|
101
|
-
Rake::Task["db:
|
146
|
+
Rake::Task["db:dump"].invoke unless Rails.env.test?
|
102
147
|
end
|
103
148
|
|
104
149
|
desc 'Runs the "down" for a given migration VERSION.'
|
@@ -106,14 +151,14 @@ namespace :db do
|
|
106
151
|
version = ENV["VERSION"] ? ENV["VERSION"].to_i : nil
|
107
152
|
raise "VERSION is required" unless version
|
108
153
|
SequelRails::Migrations.migrate_down!(version)
|
109
|
-
Rake::Task["db:
|
154
|
+
Rake::Task["db:dump"].invoke unless Rails.env.test?
|
110
155
|
end
|
111
156
|
end
|
112
157
|
|
113
158
|
desc 'Migrate the database to the latest version'
|
114
159
|
task :migrate => "migrate:load" do
|
115
160
|
SequelRails::Migrations.migrate_up!(ENV["VERSION"] ? ENV["VERSION"].to_i : nil)
|
116
|
-
Rake::Task["db:
|
161
|
+
Rake::Task["db:dump"].invoke unless Rails.env.test?
|
117
162
|
end
|
118
163
|
|
119
164
|
desc 'Load the seed data from db/seeds.rb'
|
@@ -123,7 +168,7 @@ namespace :db do
|
|
123
168
|
end
|
124
169
|
|
125
170
|
desc 'Create the database, load the schema, and initialize with the seed data'
|
126
|
-
task :setup => [ 'db:create', 'db:
|
171
|
+
task :setup => [ 'db:create', 'db:load', 'db:seed' ]
|
127
172
|
|
128
173
|
desc 'Drops and recreates the database from db/schema.rb for the current environment and loads the seeds.'
|
129
174
|
task :reset => [ 'db:drop', 'db:setup' ]
|
@@ -140,7 +185,7 @@ namespace :db do
|
|
140
185
|
previous_env, Rails.env = Rails.env, 'test'
|
141
186
|
Rake::Task['db:drop'].execute
|
142
187
|
Rake::Task['db:create'].execute
|
143
|
-
Rake::Task['db:
|
188
|
+
Rake::Task['db:load'].execute
|
144
189
|
Sequel::DATABASES.each do |db|
|
145
190
|
db.disconnect
|
146
191
|
end
|
data/lib/sequel_rails/storage.rb
CHANGED
@@ -24,6 +24,14 @@ module SequelRails
|
|
24
24
|
adapter.close_connections
|
25
25
|
adapter.drop
|
26
26
|
end
|
27
|
+
|
28
|
+
def self.dump_environment(config_or_env, filename)
|
29
|
+
adapter_for(config_or_env).dump(filename)
|
30
|
+
end
|
31
|
+
|
32
|
+
def self.load_environment(config_or_env, filename)
|
33
|
+
adapter_for(config_or_env).load(filename)
|
34
|
+
end
|
27
35
|
|
28
36
|
def self.close_all_connections
|
29
37
|
with_all_repositories { |config| close_connections_environment(config) }
|
@@ -21,6 +21,18 @@ module SequelRails
|
|
21
21
|
res
|
22
22
|
end
|
23
23
|
|
24
|
+
def dump filename
|
25
|
+
res = _dump filename
|
26
|
+
puts "[sequel] Dumped structure of database '#{database}' to '#{filename}'" if res
|
27
|
+
res
|
28
|
+
end
|
29
|
+
|
30
|
+
def load filename
|
31
|
+
res = _load filename
|
32
|
+
puts "[sequel] Loaded structure of database '#{database}' from '#{filename}'" if res
|
33
|
+
res
|
34
|
+
end
|
35
|
+
|
24
36
|
# To be overriden by subclasses
|
25
37
|
def close_connections
|
26
38
|
true
|
@@ -25,6 +25,32 @@ module SequelRails
|
|
25
25
|
ENV["PGPASSWORD"] = nil unless password.blank?
|
26
26
|
res
|
27
27
|
end
|
28
|
+
|
29
|
+
def _dump filename
|
30
|
+
ENV["PGPASSWORD"] = password unless password.blank?
|
31
|
+
commands = %w(pg_dump -i -s -x -O)
|
32
|
+
commands << "-f" << filename
|
33
|
+
commands << "-U" << username unless username.blank?
|
34
|
+
commands << "--port" << port.to_s unless port.blank?
|
35
|
+
commands << "--host" << host unless host.blank?
|
36
|
+
commands << database
|
37
|
+
res = system(*commands)
|
38
|
+
ENV["PGPASSWORD"] = nil unless password.blank?
|
39
|
+
res
|
40
|
+
end
|
41
|
+
|
42
|
+
def _load filename
|
43
|
+
ENV["PGPASSWORD"] = password unless password.blank?
|
44
|
+
commands = %w(psql)
|
45
|
+
commands << "-f" << filename
|
46
|
+
commands << "-U" << username unless username.blank?
|
47
|
+
commands << "--port" << port.to_s unless port.blank?
|
48
|
+
commands << "--host" << host unless host.blank?
|
49
|
+
commands << database
|
50
|
+
res = system(*commands)
|
51
|
+
ENV["PGPASSWORD"] = nil unless password.blank?
|
52
|
+
res
|
53
|
+
end
|
28
54
|
|
29
55
|
def close_connections
|
30
56
|
begin
|
data/lib/sequel_rails/version.rb
CHANGED
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sequel-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
version: 0.4.1
|
4
|
+
version: 0.4.2
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Brasten Sager (brasten)
|
@@ -10,104 +9,92 @@ authors:
|
|
10
9
|
autorequire:
|
11
10
|
bindir: bin
|
12
11
|
cert_chain: []
|
13
|
-
date: 2013-03-
|
12
|
+
date: 2013-03-18 00:00:00.000000000 Z
|
14
13
|
dependencies:
|
15
14
|
- !ruby/object:Gem::Dependency
|
16
|
-
|
17
|
-
version_requirements: !ruby/object:Gem::Requirement
|
18
|
-
none: false
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
19
16
|
requirements:
|
20
17
|
- - ~>
|
21
18
|
- !ruby/object:Gem::Version
|
22
19
|
version: '3.28'
|
23
|
-
prerelease: false
|
24
20
|
type: :runtime
|
25
|
-
|
26
|
-
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
27
23
|
requirements:
|
28
24
|
- - ~>
|
29
25
|
- !ruby/object:Gem::Version
|
30
26
|
version: '3.28'
|
27
|
+
name: sequel
|
31
28
|
- !ruby/object:Gem::Dependency
|
32
|
-
|
33
|
-
version_requirements: !ruby/object:Gem::Requirement
|
34
|
-
none: false
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
35
30
|
requirements:
|
36
31
|
- - ! '>='
|
37
32
|
- !ruby/object:Gem::Version
|
38
33
|
version: 3.2.0
|
39
|
-
prerelease: false
|
40
34
|
type: :runtime
|
41
|
-
|
42
|
-
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
43
37
|
requirements:
|
44
38
|
- - ! '>='
|
45
39
|
- !ruby/object:Gem::Version
|
46
40
|
version: 3.2.0
|
41
|
+
name: railties
|
47
42
|
- !ruby/object:Gem::Dependency
|
48
|
-
|
49
|
-
version_requirements: !ruby/object:Gem::Requirement
|
50
|
-
none: false
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
51
44
|
requirements:
|
52
45
|
- - ! '>='
|
53
46
|
- !ruby/object:Gem::Version
|
54
47
|
version: 0.8.7
|
55
|
-
prerelease: false
|
56
48
|
type: :development
|
57
|
-
|
58
|
-
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
59
51
|
requirements:
|
60
52
|
- - ! '>='
|
61
53
|
- !ruby/object:Gem::Version
|
62
54
|
version: 0.8.7
|
55
|
+
name: rake
|
63
56
|
- !ruby/object:Gem::Dependency
|
64
|
-
|
65
|
-
version_requirements: !ruby/object:Gem::Requirement
|
66
|
-
none: false
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
67
58
|
requirements:
|
68
59
|
- - ~>
|
69
60
|
- !ruby/object:Gem::Version
|
70
61
|
version: 2.7.0
|
71
|
-
prerelease: false
|
72
62
|
type: :development
|
73
|
-
|
74
|
-
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
75
65
|
requirements:
|
76
66
|
- - ~>
|
77
67
|
- !ruby/object:Gem::Version
|
78
68
|
version: 2.7.0
|
69
|
+
name: rspec
|
79
70
|
- !ruby/object:Gem::Dependency
|
80
|
-
|
81
|
-
version_requirements: !ruby/object:Gem::Requirement
|
82
|
-
none: false
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
83
72
|
requirements:
|
84
73
|
- - ~>
|
85
74
|
- !ruby/object:Gem::Version
|
86
75
|
version: 0.3.1
|
87
|
-
prerelease: false
|
88
76
|
type: :development
|
89
|
-
|
90
|
-
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
91
79
|
requirements:
|
92
80
|
- - ~>
|
93
81
|
- !ruby/object:Gem::Version
|
94
82
|
version: 0.3.1
|
83
|
+
name: combustion
|
95
84
|
- !ruby/object:Gem::Dependency
|
96
|
-
|
97
|
-
version_requirements: !ruby/object:Gem::Requirement
|
98
|
-
none: false
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
99
86
|
requirements:
|
100
87
|
- - ~>
|
101
88
|
- !ruby/object:Gem::Version
|
102
89
|
version: 0.8.7
|
103
|
-
prerelease: false
|
104
90
|
type: :development
|
105
|
-
|
106
|
-
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
93
|
requirements:
|
108
94
|
- - ~>
|
109
95
|
- !ruby/object:Gem::Version
|
110
96
|
version: 0.8.7
|
97
|
+
name: generator_spec
|
111
98
|
description: Integrate Sequel with Rails 3
|
112
99
|
email:
|
113
100
|
- brasten@gmail.com
|
@@ -175,34 +162,27 @@ files:
|
|
175
162
|
- tasks/spec.rake
|
176
163
|
homepage: https://github.com/TalentBox/sequel-rails
|
177
164
|
licenses: []
|
165
|
+
metadata: {}
|
178
166
|
post_install_message:
|
179
167
|
rdoc_options:
|
180
168
|
- --charset=UTF-8
|
181
169
|
require_paths:
|
182
170
|
- lib
|
183
171
|
required_ruby_version: !ruby/object:Gem::Requirement
|
184
|
-
none: false
|
185
172
|
requirements:
|
186
173
|
- - ! '>='
|
187
174
|
- !ruby/object:Gem::Version
|
188
|
-
hash: 4606545589271147809
|
189
|
-
segments:
|
190
|
-
- 0
|
191
175
|
version: '0'
|
192
176
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
193
|
-
none: false
|
194
177
|
requirements:
|
195
178
|
- - ! '>='
|
196
179
|
- !ruby/object:Gem::Version
|
197
|
-
hash: 4606545589271147809
|
198
|
-
segments:
|
199
|
-
- 0
|
200
180
|
version: '0'
|
201
181
|
requirements: []
|
202
182
|
rubyforge_project:
|
203
|
-
rubygems_version:
|
183
|
+
rubygems_version: 2.0.3
|
204
184
|
signing_key:
|
205
|
-
specification_version:
|
185
|
+
specification_version: 4
|
206
186
|
summary: Use Sequel with Rails 3
|
207
187
|
test_files:
|
208
188
|
- spec/internal/Rakefile
|