webdack-uuid_migration 1.1.0 → 1.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 +5 -5
- data/.travis.yml +7 -22
- data/README.md +11 -8
- data/lib/webdack/uuid_migration/helpers.rb +3 -3
- data/lib/webdack/uuid_migration/version.rb +1 -1
- data/spec/support/pg_database_helper.rb +1 -1
- data/spec/uuid_custom_pk_spec.rb +3 -3
- data/spec/uuid_migrate_helper_spec.rb +5 -5
- data/webdack-uuid_migration.gemspec +1 -1
- metadata +7 -9
- data/gemfiles/rails40.gemfile +0 -5
- data/gemfiles/rails41.gemfile +0 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: b709b9d34a4056a5ff2c795042d350b1e4647bcb3b07ab506865bdec674ea91f
|
4
|
+
data.tar.gz: f3393d180b72879821e52595c64cc19617986b136eed305d28b10ebaeb78798e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: beaff06732e3687f9694294bf6f0b140a335fd3156ced708dfb025f7263099789ffe2b0b2de00f6ffa480994e7513af7710b1bfc3ab69c505c32afe85c2ef518
|
7
|
+
data.tar.gz: 3adf61a3fc37ff339b26d6f204f790150ed5843c9daeb74022498b3c0a72251c4d51eef9d89481389d49f03f68aabfbbc75bde47e0b2c4c5d9e69e1b23bd798e
|
data/.travis.yml
CHANGED
@@ -1,29 +1,14 @@
|
|
1
1
|
rvm:
|
2
|
-
- 2.
|
3
|
-
- 2.
|
4
|
-
- 2.
|
5
|
-
- 2.3.5
|
6
|
-
- 2.4.2
|
2
|
+
- 2.3.6
|
3
|
+
- 2.4.3
|
4
|
+
- 2.5.0
|
7
5
|
|
8
6
|
gemfile:
|
9
|
-
- gemfiles/rails40.gemfile
|
10
|
-
- gemfiles/rails41.gemfile
|
11
7
|
- gemfiles/rails42.gemfile
|
8
|
+
- gemfiles/rails50.gemfile
|
9
|
+
- gemfiles/rails51.gemfile
|
12
10
|
|
13
11
|
script: bundle exec rspec spec
|
14
12
|
|
15
|
-
|
16
|
-
|
17
|
-
- rvm: 2.3.5
|
18
|
-
gemfile: gemfiles/rails50.gemfile
|
19
|
-
- rvm: 2.4.2
|
20
|
-
gemfile: gemfiles/rails50.gemfile
|
21
|
-
- rvm: 2.3.5
|
22
|
-
gemfile: gemfiles/rails51.gemfile
|
23
|
-
- rvm: 2.4.2
|
24
|
-
gemfile: gemfiles/rails51.gemfile
|
25
|
-
exclude:
|
26
|
-
- rvm: 2.4.2
|
27
|
-
gemfile: gemfiles/rails40.gemfile
|
28
|
-
- rvm: 2.4.2
|
29
|
-
gemfile: gemfiles/rails41.gemfile
|
13
|
+
addons:
|
14
|
+
postgresql: "9.4"
|
data/README.md
CHANGED
@@ -8,6 +8,10 @@ pull requests if you face any issues.**
|
|
8
8
|
Helper methods to migrate Integer columns to UUID columns during migrations in PostgreSQL.
|
9
9
|
It supports migrating primary key columns as well.
|
10
10
|
|
11
|
+
## Documentation
|
12
|
+
|
13
|
+
http://www.rubydoc.info/gems/webdack-uuid_migration
|
14
|
+
|
11
15
|
## Installation
|
12
16
|
|
13
17
|
Add this line to your application's Gemfile:
|
@@ -29,7 +33,7 @@ this gem can safely be removed from your applications Gemfile.
|
|
29
33
|
## Usage
|
30
34
|
|
31
35
|
- Put `require 'webdack/uuid_migration/helpers'` in your migration file.
|
32
|
-
- Enable `'
|
36
|
+
- Enable `'pgcrypto'` directly in Postgres database or by adding `enable_extension 'pgcrypto'` to your migration.
|
33
37
|
- Use methods from {Webdack::UUIDMigration::Helpers} as appropriate.
|
34
38
|
|
35
39
|
Example:
|
@@ -43,7 +47,7 @@ Example:
|
|
43
47
|
dir.up do
|
44
48
|
# Good idea to do the following, needs superuser rights in the database
|
45
49
|
# Alternatively the extension needs to be manually enabled in the RDBMS
|
46
|
-
enable_extension '
|
50
|
+
enable_extension 'pgcrypto'
|
47
51
|
|
48
52
|
primary_key_to_uuid :students
|
49
53
|
|
@@ -79,7 +83,7 @@ class MigrateWithFk < ActiveRecord::Migration
|
|
79
83
|
def change
|
80
84
|
reversible do |dir|
|
81
85
|
dir.up do
|
82
|
-
enable_extension '
|
86
|
+
enable_extension 'pgcrypto'
|
83
87
|
|
84
88
|
primary_key_and_all_references_to_uuid :cities
|
85
89
|
end
|
@@ -136,11 +140,9 @@ Example:
|
|
136
140
|
Works only with Rails 4 & Rails 5. It uses Rails4's out-of-the-box UUID support for PostgreSQL. Works with following
|
137
141
|
Ruby versions:
|
138
142
|
|
139
|
-
- 2.
|
140
|
-
- 2.
|
141
|
-
- 2.
|
142
|
-
- 2.3.5
|
143
|
-
- 2.4.2
|
143
|
+
- 2.3.6
|
144
|
+
- 2.4.3
|
145
|
+
- 2.5.0
|
144
146
|
|
145
147
|
Tested with Rails 5.0.x and 5.1.x. Reported working with 5.2.0 alpha.
|
146
148
|
|
@@ -155,6 +157,7 @@ To run the test suite:
|
|
155
157
|
- Users of the Gem
|
156
158
|
- [Felix Bünemann](https://github.com/felixbuenemann) for checking compatibility with Rails 4.1
|
157
159
|
- [Nick Schwaderer](https://github.com/Schwad) Rials 5.2.x compatibility
|
160
|
+
- [Kelsey Hannan](https://github.com/KelseyDH) Upgrading to `pgcrypto`
|
158
161
|
|
159
162
|
## Contributing
|
160
163
|
|
@@ -7,16 +7,16 @@ module Webdack
|
|
7
7
|
|
8
8
|
|
9
9
|
# Converts primary key from Serial Integer to UUID, migrates all data by left padding with 0's
|
10
|
-
# sets
|
10
|
+
# sets gen_random_uuid() as default for the column
|
11
11
|
#
|
12
12
|
# @param table [Symbol]
|
13
13
|
# @param options [hash]
|
14
14
|
# @option options [Symbol] :primary_key if not supplied queries the schema (should work most of the times)
|
15
|
-
# @option options [String] :default mechanism to generate UUID for new records, default
|
15
|
+
# @option options [String] :default mechanism to generate UUID for new records, default gen_random_uuid(),
|
16
16
|
# which is Rails 4.0.0 default as well
|
17
17
|
# @return [none]
|
18
18
|
def primary_key_to_uuid(table, options={})
|
19
|
-
default= options[:default] || '
|
19
|
+
default= options[:default] || 'gen_random_uuid()'
|
20
20
|
|
21
21
|
column= connection.primary_key(table)
|
22
22
|
|
data/spec/uuid_custom_pk_spec.rb
CHANGED
@@ -6,7 +6,7 @@ class MigrationBase < ActiveRecordMigration
|
|
6
6
|
t.string :name
|
7
7
|
end
|
8
8
|
|
9
|
-
enable_extension '
|
9
|
+
enable_extension 'pgcrypto'
|
10
10
|
end
|
11
11
|
end
|
12
12
|
|
@@ -42,7 +42,7 @@ class Migration03 < ActiveRecordMigration
|
|
42
42
|
def change
|
43
43
|
reversible do |dir|
|
44
44
|
dir.up do
|
45
|
-
primary_key_to_uuid :states, default: '
|
45
|
+
primary_key_to_uuid :states, default: 'gen_random_uuid()'
|
46
46
|
end
|
47
47
|
|
48
48
|
dir.down do
|
@@ -111,7 +111,7 @@ describe Webdack::UUIDMigration::Helpers do
|
|
111
111
|
}
|
112
112
|
|
113
113
|
default_function = State.connection.columns(:states).find { |c| c.name == 'stateid' }.default_function
|
114
|
-
expect(default_function).to eq '
|
114
|
+
expect(default_function).to eq 'gen_random_uuid()'
|
115
115
|
end
|
116
116
|
|
117
117
|
end
|
@@ -4,7 +4,7 @@ class BasicMigration < ActiveRecordMigration
|
|
4
4
|
def change
|
5
5
|
reversible do |dir|
|
6
6
|
dir.up do
|
7
|
-
enable_extension '
|
7
|
+
enable_extension 'pgcrypto'
|
8
8
|
|
9
9
|
primary_key_to_uuid :students
|
10
10
|
columns_to_uuid :students, :city_id, :institution_id
|
@@ -21,7 +21,7 @@ class MigrateAllOneGo < ActiveRecordMigration
|
|
21
21
|
def change
|
22
22
|
reversible do |dir|
|
23
23
|
dir.up do
|
24
|
-
enable_extension '
|
24
|
+
enable_extension 'pgcrypto'
|
25
25
|
|
26
26
|
primary_key_to_uuid :cities
|
27
27
|
primary_key_to_uuid :colleges
|
@@ -42,7 +42,7 @@ class MigrateWithFk < ActiveRecordMigration
|
|
42
42
|
def change
|
43
43
|
reversible do |dir|
|
44
44
|
dir.up do
|
45
|
-
enable_extension '
|
45
|
+
enable_extension 'pgcrypto'
|
46
46
|
|
47
47
|
primary_key_and_all_references_to_uuid :cities
|
48
48
|
end
|
@@ -58,7 +58,7 @@ class MigrateStep01 < ActiveRecordMigration
|
|
58
58
|
def change
|
59
59
|
reversible do |dir|
|
60
60
|
dir.up do
|
61
|
-
enable_extension '
|
61
|
+
enable_extension 'pgcrypto'
|
62
62
|
|
63
63
|
primary_key_to_uuid :cities
|
64
64
|
primary_key_to_uuid :colleges
|
@@ -157,7 +157,7 @@ describe Webdack::UUIDMigration::Helpers do
|
|
157
157
|
end
|
158
158
|
|
159
159
|
# Verify that primary key has correct default
|
160
|
-
expect(columns.find{|c| c.name == 'id'}.default_function).to eq '
|
160
|
+
expect(columns.find{|c| c.name == 'id'}.default_function).to eq 'gen_random_uuid()'
|
161
161
|
end
|
162
162
|
end
|
163
163
|
|
@@ -22,7 +22,7 @@ Gem::Specification.new do |spec|
|
|
22
22
|
spec.add_development_dependency "rake"
|
23
23
|
spec.add_development_dependency "yard"
|
24
24
|
spec.add_development_dependency "rspec"
|
25
|
-
spec.add_development_dependency "pg"
|
25
|
+
spec.add_development_dependency "pg", '< 1.0'
|
26
26
|
spec.add_development_dependency 'gem-release'
|
27
27
|
|
28
28
|
spec.add_dependency 'activerecord', '>= 4.0'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: webdack-uuid_migration
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Deepak Kumar
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-01-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -70,16 +70,16 @@ dependencies:
|
|
70
70
|
name: pg
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- - "
|
73
|
+
- - "<"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: '0'
|
75
|
+
version: '1.0'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- - "
|
80
|
+
- - "<"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: '0'
|
82
|
+
version: '1.0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: gem-release
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -122,8 +122,6 @@ files:
|
|
122
122
|
- LICENSE.txt
|
123
123
|
- README.md
|
124
124
|
- Rakefile
|
125
|
-
- gemfiles/rails40.gemfile
|
126
|
-
- gemfiles/rails41.gemfile
|
127
125
|
- gemfiles/rails42.gemfile
|
128
126
|
- gemfiles/rails50.gemfile
|
129
127
|
- gemfiles/rails51.gemfile
|
@@ -164,7 +162,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
164
162
|
version: '0'
|
165
163
|
requirements: []
|
166
164
|
rubyforge_project:
|
167
|
-
rubygems_version: 2.
|
165
|
+
rubygems_version: 2.7.3
|
168
166
|
signing_key:
|
169
167
|
specification_version: 4
|
170
168
|
summary: Useful helpers to migrate Integer id columns to UUID in PostgreSql.
|
data/gemfiles/rails40.gemfile
DELETED