schema_plus 0.3.0 → 0.3.1
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.
- data/README.rdoc +3 -2
- data/gemfiles/Gemfile.rails-2.3.lock +1 -1
- data/gemfiles/Gemfile.rails-3.0.lock +1 -1
- data/gemfiles/Gemfile.rails-3.1.lock +1 -1
- data/gemfiles/Gemfile.rails-3.2.lock +1 -1
- data/lib/schema_plus/active_record/connection_adapters/postgresql_adapter.rb +9 -0
- data/lib/schema_plus/version.rb +1 -1
- data/spec/schema_dumper_spec.rb +9 -8
- metadata +20 -20
data/README.rdoc
CHANGED
@@ -176,6 +176,7 @@ take advantage of auto-creation of foreign keys, you can re-enable it:
|
|
176
176
|
== History
|
177
177
|
|
178
178
|
* Recent Release notes:
|
179
|
+
* 0.3.1 - bug fix for PostgreSQL schema dump after * change_column_default(... nil)
|
179
180
|
* 0.3.0 - add :default => expressions (Thanks to Luke Saunders). support rails 3.2 and ruby 1.9.3
|
180
181
|
* 0.2.1 - suppress duplicate add_indexes. compatibility with rails 3.2.0.rc2
|
181
182
|
|
@@ -186,7 +187,7 @@ take advantage of auto-creation of foreign keys, you can re-enable it:
|
|
186
187
|
* François Beausoleil (https://github.com/francois)
|
187
188
|
* Greg Barnett (https://github.com/greg-barnett)
|
188
189
|
* Ronen Barzel (https://github.com/ronen)
|
189
|
-
* Luke
|
190
|
+
* Luke Saunders (https://github.com/lukesaunders)
|
190
191
|
|
191
192
|
* SchemaPlus was created in 2011 by Michał Łomnicki and Ronen Barzel
|
192
193
|
|
@@ -218,7 +219,7 @@ And you can run the specs for a specific adapter:
|
|
218
219
|
$ rake mysql2:spec # to run mysql2 tests only
|
219
220
|
$ rake sqlite3:spec # to run sqlite3 tests only
|
220
221
|
|
221
|
-
If you're running ruby 1.9
|
222
|
+
If you're running ruby 1.9, code coverage results will be in coverage/index.html -- it should be at 100% coverage.
|
222
223
|
|
223
224
|
== License
|
224
225
|
|
@@ -25,7 +25,16 @@ module SchemaPlus
|
|
25
25
|
|
26
26
|
module ClassMethods
|
27
27
|
def extract_value_from_default_with_schema_plus(default)
|
28
|
+
|
29
|
+
|
28
30
|
value = extract_value_from_default_without_schema_plus(default)
|
31
|
+
|
32
|
+
# in some cases (e.g. if change_column_default(table, column,
|
33
|
+
# nil) is used), postgresql will return NULL::xxxxx (rather
|
34
|
+
# than nil) for a null default -- make sure we treat it as nil,
|
35
|
+
# not as a function.
|
36
|
+
default = nil if value.nil? && default =~ /\ANULL::(?:character varying|bpchar|text)\z/m
|
37
|
+
|
29
38
|
if value.nil? && !default.nil?
|
30
39
|
value = { :expr => default }
|
31
40
|
end
|
data/lib/schema_plus/version.rb
CHANGED
data/spec/schema_dumper_spec.rb
CHANGED
@@ -21,6 +21,7 @@ describe "Schema dump" do
|
|
21
21
|
t.text :body
|
22
22
|
t.integer :user_id
|
23
23
|
t.integer :first_comment_id
|
24
|
+
t.string :string_no_default
|
24
25
|
end
|
25
26
|
|
26
27
|
create_table :comments, :force => true do |t|
|
@@ -78,7 +79,7 @@ describe "Schema dump" do
|
|
78
79
|
|
79
80
|
it "should dump the default hash expr as CURRENT_TIMESTAMP" do
|
80
81
|
with_additional_column Post, :posted_at, :datetime, :default => {:expr => 'date \'2001-09-28\''} do
|
81
|
-
dump_posts.should match(
|
82
|
+
dump_posts.should match(%r{t.datetime "posted_at",\s*:default => '2001-09-28 00:00:00'})
|
82
83
|
end
|
83
84
|
end
|
84
85
|
end
|
@@ -98,18 +99,18 @@ describe "Schema dump" do
|
|
98
99
|
|
99
100
|
it "should dump the default value normally" do
|
100
101
|
with_additional_column Post, :posted_at, :string, :default => "now" do
|
101
|
-
dump_posts.should match(
|
102
|
+
dump_posts.should match(%r{t.string "posted_at",\s*:default => "now"})
|
102
103
|
end
|
103
104
|
end
|
104
105
|
end
|
105
106
|
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
end
|
107
|
+
end
|
108
|
+
|
109
|
+
it "should leave out :default when default was changed to null" do
|
110
|
+
ActiveRecord::Migration.suppress_messages do
|
111
|
+
ActiveRecord::Migration.change_column_default :posts, :string_no_default, nil
|
112
112
|
end
|
113
|
+
dump_posts.should match(%r{t.string\s+"string_no_default"\s*$})
|
113
114
|
end
|
114
115
|
|
115
116
|
it "should include foreign_key options" do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: schema_plus
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,11 +10,11 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2012-03-
|
13
|
+
date: 2012-03-21 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rails
|
17
|
-
requirement: &
|
17
|
+
requirement: &70326231344460 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ! '>='
|
@@ -22,10 +22,10 @@ dependencies:
|
|
22
22
|
version: '0'
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
25
|
+
version_requirements: *70326231344460
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: valuable
|
28
|
-
requirement: &
|
28
|
+
requirement: &70326231343800 !ruby/object:Gem::Requirement
|
29
29
|
none: false
|
30
30
|
requirements:
|
31
31
|
- - ! '>='
|
@@ -33,10 +33,10 @@ dependencies:
|
|
33
33
|
version: '0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
|
-
version_requirements: *
|
36
|
+
version_requirements: *70326231343800
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
38
|
name: rake
|
39
|
-
requirement: &
|
39
|
+
requirement: &70326231342600 !ruby/object:Gem::Requirement
|
40
40
|
none: false
|
41
41
|
requirements:
|
42
42
|
- - ~>
|
@@ -44,10 +44,10 @@ dependencies:
|
|
44
44
|
version: 0.8.7
|
45
45
|
type: :development
|
46
46
|
prerelease: false
|
47
|
-
version_requirements: *
|
47
|
+
version_requirements: *70326231342600
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
49
|
name: rspec
|
50
|
-
requirement: &
|
50
|
+
requirement: &70326235449900 !ruby/object:Gem::Requirement
|
51
51
|
none: false
|
52
52
|
requirements:
|
53
53
|
- - ! '>='
|
@@ -55,10 +55,10 @@ dependencies:
|
|
55
55
|
version: '0'
|
56
56
|
type: :development
|
57
57
|
prerelease: false
|
58
|
-
version_requirements: *
|
58
|
+
version_requirements: *70326235449900
|
59
59
|
- !ruby/object:Gem::Dependency
|
60
60
|
name: pg
|
61
|
-
requirement: &
|
61
|
+
requirement: &70326235449440 !ruby/object:Gem::Requirement
|
62
62
|
none: false
|
63
63
|
requirements:
|
64
64
|
- - ! '>='
|
@@ -66,10 +66,10 @@ dependencies:
|
|
66
66
|
version: '0'
|
67
67
|
type: :development
|
68
68
|
prerelease: false
|
69
|
-
version_requirements: *
|
69
|
+
version_requirements: *70326235449440
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: mysql
|
72
|
-
requirement: &
|
72
|
+
requirement: &70326235449020 !ruby/object:Gem::Requirement
|
73
73
|
none: false
|
74
74
|
requirements:
|
75
75
|
- - ! '>='
|
@@ -77,10 +77,10 @@ dependencies:
|
|
77
77
|
version: '0'
|
78
78
|
type: :development
|
79
79
|
prerelease: false
|
80
|
-
version_requirements: *
|
80
|
+
version_requirements: *70326235449020
|
81
81
|
- !ruby/object:Gem::Dependency
|
82
82
|
name: sqlite3
|
83
|
-
requirement: &
|
83
|
+
requirement: &70326235448600 !ruby/object:Gem::Requirement
|
84
84
|
none: false
|
85
85
|
requirements:
|
86
86
|
- - ! '>='
|
@@ -88,10 +88,10 @@ dependencies:
|
|
88
88
|
version: '0'
|
89
89
|
type: :development
|
90
90
|
prerelease: false
|
91
|
-
version_requirements: *
|
91
|
+
version_requirements: *70326235448600
|
92
92
|
- !ruby/object:Gem::Dependency
|
93
93
|
name: simplecov
|
94
|
-
requirement: &
|
94
|
+
requirement: &70326235448180 !ruby/object:Gem::Requirement
|
95
95
|
none: false
|
96
96
|
requirements:
|
97
97
|
- - ! '>='
|
@@ -99,10 +99,10 @@ dependencies:
|
|
99
99
|
version: '0'
|
100
100
|
type: :development
|
101
101
|
prerelease: false
|
102
|
-
version_requirements: *
|
102
|
+
version_requirements: *70326235448180
|
103
103
|
- !ruby/object:Gem::Dependency
|
104
104
|
name: simplecov-gem-adapter
|
105
|
-
requirement: &
|
105
|
+
requirement: &70326235447760 !ruby/object:Gem::Requirement
|
106
106
|
none: false
|
107
107
|
requirements:
|
108
108
|
- - ! '>='
|
@@ -110,7 +110,7 @@ dependencies:
|
|
110
110
|
version: '0'
|
111
111
|
type: :development
|
112
112
|
prerelease: false
|
113
|
-
version_requirements: *
|
113
|
+
version_requirements: *70326235447760
|
114
114
|
description: ! 'SchemaPlus is an ActiveRecord extension that provides enhanced capabilities
|
115
115
|
for schema definition and querying, including: enhanced and more DRY index capabilities,
|
116
116
|
support and automation for foreign key constraints, and support for views.'
|