sequel-rails 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 +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
|