rails-bigint-pk 1.0.0 → 1.1.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/Changelog +8 -0
- data/Readme.md +3 -3
- data/lib/bigint_pk.rb +2 -3
- data/lib/bigint_pk/version.rb +1 -1
- data/rails-bigint-pk.gemspec +3 -3
- data/spec/fixtures/Gemfile +1 -1
- data/spec/migration_spec.rb +4 -3
- data/spec/monkey_patch/connection_adapters_spec.rb +6 -3
- metadata +25 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 36f312ba8a2d027d656428d951776d19cfa558b2
|
4
|
+
data.tar.gz: 6170eacf81c9e50fa0bced8a4f3af2c266ea1197
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5069efd0eacefd9158538aa17a553a1ddf6334ecf46bfeef283e5e71449c729a38cbbe21304bfeecccf9b2be8ce38f6b42eed3abfd6b2f117dcdf44e44ef20ce
|
7
|
+
data.tar.gz: 08e4ef35607b17997e538e3bf23e537902c115f76d4e2da79d2c5646de873b0fc70c79fe9c3f1d32f13b3b367ecdbe204e57e78225f40eda6c1b5cf31696d99b
|
data/Changelog
CHANGED
data/Readme.md
CHANGED
@@ -15,13 +15,13 @@ recommended to run the test suite against your version of rails and activerecord
|
|
15
15
|
|
16
16
|
#### Rails 4
|
17
17
|
|
18
|
-
rails-bigint-pk supports Rails 4.
|
18
|
+
rails-bigint-pk supports Rails 4 and 4.1. To install, you can either
|
19
19
|
download releases from Rubygems by adding the following to your
|
20
20
|
`Gemfile`:
|
21
21
|
|
22
|
-
`gem 'rails-bigint-pk', '~>1.
|
22
|
+
`gem 'rails-bigint-pk', '~>1.1.0'`
|
23
23
|
|
24
|
-
... or you can install the newest code directly from git:
|
24
|
+
... or, if you enjoy being on the bleeding edge, you can install the newest code directly from git:
|
25
25
|
|
26
26
|
`gem 'rails-bigint-pk', github: 'caboteria/rails-bigint-pk'`
|
27
27
|
|
data/lib/bigint_pk.rb
CHANGED
@@ -39,8 +39,7 @@ module BigintPk
|
|
39
39
|
end
|
40
40
|
|
41
41
|
if ca.const_defined? :AbstractMysqlAdapter
|
42
|
-
ca::AbstractMysqlAdapter::NATIVE_DATABASE_TYPES[:primary_key]
|
43
|
-
'bigint(20) DEFAULT NULL auto_increment PRIMARY KEY'
|
42
|
+
ca::AbstractMysqlAdapter::NATIVE_DATABASE_TYPES[:primary_key].gsub! /int\(11\)/, 'bigint(20)'
|
44
43
|
end
|
45
44
|
end
|
46
45
|
|
@@ -83,7 +82,7 @@ module BigintPk
|
|
83
82
|
c.execute %Q{
|
84
83
|
ALTER TABLE #{c.quote_table_name table_name}
|
85
84
|
MODIFY COLUMN #{c.quote_column_name key_name}
|
86
|
-
bigint(20)
|
85
|
+
bigint(20) #{is_primary_key ? 'auto_increment' : 'DEFAULT NULL'}
|
87
86
|
}.gsub(/\s+/, ' ').strip
|
88
87
|
when 'SQLite'
|
89
88
|
# noop; sqlite always has 64bit pkeys
|
data/lib/bigint_pk/version.rb
CHANGED
data/rails-bigint-pk.gemspec
CHANGED
@@ -22,12 +22,12 @@ Gem::Specification.new do |s|
|
|
22
22
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
23
23
|
s.require_paths = ["lib"]
|
24
24
|
|
25
|
-
s.add_runtime_dependency "activerecord", '
|
26
|
-
s.add_runtime_dependency "railties", '
|
25
|
+
s.add_runtime_dependency "activerecord", '>= 4.0', '< 4.2'
|
26
|
+
s.add_runtime_dependency "railties", '>= 4.0', '< 4.2'
|
27
27
|
|
28
28
|
s.add_development_dependency "rspec", '~> 2.14'
|
29
29
|
s.add_development_dependency "travis-lint", '~> 1.7'
|
30
|
-
s.add_development_dependency "rails", '~> 4.
|
30
|
+
s.add_development_dependency "rails", '~> 4.1'
|
31
31
|
s.add_development_dependency "mysql2", '~> 0.3'
|
32
32
|
s.add_development_dependency "mysql", '~> 2.8'
|
33
33
|
s.add_development_dependency "pg", '~> 0.11'
|
data/spec/fixtures/Gemfile
CHANGED
data/spec/migration_spec.rb
CHANGED
@@ -31,6 +31,7 @@ describe 'ChangeKeysToBigint' do
|
|
31
31
|
|
32
32
|
stub_const('Rails', double('Rails'))
|
33
33
|
Rails.stub_chain 'application.eager_load!'
|
34
|
+
Rails.stub(env: double('test', to_s: 'test', :'test?' => true, :'production?' => false, :'development?' => false))
|
34
35
|
|
35
36
|
ActiveRecord::Base.stub( subclasses: [ Team, Player, Coach ], connection: connection)
|
36
37
|
ActiveRecord::Base.stub_chain('connection_pool.with_connection') do |&prok|
|
@@ -71,9 +72,9 @@ describe 'ChangeKeysToBigint' do
|
|
71
72
|
it 'migrates primary keys' do
|
72
73
|
ChangeKeysToBigint.migrate :up
|
73
74
|
expect( queries ).to include(
|
74
|
-
'ALTER TABLE `teams` MODIFY COLUMN `id` bigint(20)
|
75
|
-
'ALTER TABLE `players` MODIFY COLUMN `id` bigint(20)
|
76
|
-
'ALTER TABLE `coaches` MODIFY COLUMN `id` bigint(20)
|
75
|
+
'ALTER TABLE `teams` MODIFY COLUMN `id` bigint(20) auto_increment',
|
76
|
+
'ALTER TABLE `players` MODIFY COLUMN `id` bigint(20) auto_increment',
|
77
|
+
'ALTER TABLE `coaches` MODIFY COLUMN `id` bigint(20) auto_increment'
|
77
78
|
)
|
78
79
|
end
|
79
80
|
|
@@ -2,6 +2,9 @@ require 'spec_helper'
|
|
2
2
|
require 'active_record/connection_adapters/postgresql_adapter'
|
3
3
|
require 'active_record/connection_adapters/abstract_mysql_adapter'
|
4
4
|
|
5
|
+
MYSQL_DEFAULT_PK = ActiveRecord::ConnectionAdapters::AbstractMysqlAdapter::NATIVE_DATABASE_TYPES[:primary_key]
|
6
|
+
PG_DEFAULT_PK = ActiveRecord::ConnectionAdapters::PostgreSQLAdapter::NATIVE_DATABASE_TYPES[:primary_key]
|
7
|
+
|
5
8
|
describe BigintPk do
|
6
9
|
describe '::setup' do
|
7
10
|
def reset_connection_adapters!
|
@@ -41,7 +44,7 @@ describe BigintPk do
|
|
41
44
|
expect(
|
42
45
|
ActiveRecord::ConnectionAdapters::AbstractMysqlAdapter::
|
43
46
|
NATIVE_DATABASE_TYPES[:primary_key]
|
44
|
-
).to
|
47
|
+
).to match /bigint\(20\) (DEFAULT NULL )?auto_increment PRIMARY KEY/
|
45
48
|
end
|
46
49
|
|
47
50
|
def self.it_makes_references_default_to_64bit
|
@@ -144,14 +147,14 @@ describe BigintPk do
|
|
144
147
|
expect(
|
145
148
|
ActiveRecord::ConnectionAdapters::PostgreSQLAdapter::
|
146
149
|
NATIVE_DATABASE_TYPES[:primary_key]
|
147
|
-
).to eq
|
150
|
+
).to eq PG_DEFAULT_PK
|
148
151
|
end
|
149
152
|
|
150
153
|
it 'does not alter the default primary key for either mysql adapters' do
|
151
154
|
expect(
|
152
155
|
ActiveRecord::ConnectionAdapters::AbstractMysqlAdapter::
|
153
156
|
NATIVE_DATABASE_TYPES[:primary_key]
|
154
|
-
).to eq
|
157
|
+
).to eq MYSQL_DEFAULT_PK
|
155
158
|
end
|
156
159
|
end
|
157
160
|
end
|
metadata
CHANGED
@@ -1,43 +1,55 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rails-bigint-pk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David J. Hamilton
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-05-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '4.0'
|
20
|
+
- - "<"
|
18
21
|
- !ruby/object:Gem::Version
|
19
|
-
version: 4.
|
22
|
+
version: '4.2'
|
20
23
|
type: :runtime
|
21
24
|
prerelease: false
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
23
26
|
requirements:
|
24
|
-
- - "
|
27
|
+
- - ">="
|
25
28
|
- !ruby/object:Gem::Version
|
26
|
-
version: 4.0
|
29
|
+
version: '4.0'
|
30
|
+
- - "<"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '4.2'
|
27
33
|
- !ruby/object:Gem::Dependency
|
28
34
|
name: railties
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
30
36
|
requirements:
|
31
|
-
- - "
|
37
|
+
- - ">="
|
32
38
|
- !ruby/object:Gem::Version
|
33
|
-
version: 4.0
|
39
|
+
version: '4.0'
|
40
|
+
- - "<"
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: '4.2'
|
34
43
|
type: :runtime
|
35
44
|
prerelease: false
|
36
45
|
version_requirements: !ruby/object:Gem::Requirement
|
37
46
|
requirements:
|
38
|
-
- - "
|
47
|
+
- - ">="
|
39
48
|
- !ruby/object:Gem::Version
|
40
|
-
version: 4.0
|
49
|
+
version: '4.0'
|
50
|
+
- - "<"
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: '4.2'
|
41
53
|
- !ruby/object:Gem::Dependency
|
42
54
|
name: rspec
|
43
55
|
requirement: !ruby/object:Gem::Requirement
|
@@ -72,14 +84,14 @@ dependencies:
|
|
72
84
|
requirements:
|
73
85
|
- - "~>"
|
74
86
|
- !ruby/object:Gem::Version
|
75
|
-
version: '4.
|
87
|
+
version: '4.1'
|
76
88
|
type: :development
|
77
89
|
prerelease: false
|
78
90
|
version_requirements: !ruby/object:Gem::Requirement
|
79
91
|
requirements:
|
80
92
|
- - "~>"
|
81
93
|
- !ruby/object:Gem::Version
|
82
|
-
version: '4.
|
94
|
+
version: '4.1'
|
83
95
|
- !ruby/object:Gem::Dependency
|
84
96
|
name: mysql2
|
85
97
|
requirement: !ruby/object:Gem::Requirement
|
@@ -297,3 +309,4 @@ test_files:
|
|
297
309
|
- spec/support/logging.rb
|
298
310
|
- spec/support/rails.rb
|
299
311
|
- spec/support/rspec.rb
|
312
|
+
has_rdoc:
|