fast_change_table 1.5.1 → 1.6.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.
@@ -1,3 +1,8 @@
1
+ __fast\_change\_table__ 1.6.0
2
+
3
+ * tested with sqlite and postgres
4
+ * changed name of copy\_table to copy\_table\_data
5
+
1
6
  __fast\_change\_table__ 1.5.0
2
7
 
3
8
  * allowing a block to be passed to create\_table\_like to make immediate transformations
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- fast_change_table (1.5.1)
4
+ fast_change_table (1.5.2)
5
5
  activerecord (>= 2.3)
6
6
 
7
7
  GEM
@@ -32,7 +32,8 @@ GEM
32
32
  rspec-expectations (2.8.0)
33
33
  diff-lcs (~> 1.1.2)
34
34
  rspec-mocks (2.8.0)
35
- tzinfo (0.3.31)
35
+ sqlite3 (1.3.5)
36
+ tzinfo (0.3.32)
36
37
 
37
38
  PLATFORMS
38
39
  ruby
@@ -41,3 +42,4 @@ DEPENDENCIES
41
42
  fast_change_table!
42
43
  mysql2
43
44
  rspec
45
+ sqlite3
data/README.md CHANGED
@@ -58,7 +58,7 @@ __Example:__
58
58
  t.index [:some_other_column, :column_three], :name => "a_multicolumn_index"
59
59
  end
60
60
 
61
- copy\_table(from\_table, to\_table, remaps = [])
61
+ copy\_table\_data(from\_table, to\_table, remaps = [])
62
62
 
63
63
  * copies rows from one table into another.
64
64
  by default copies data from column of from_table to to_table of same name.
@@ -69,6 +69,6 @@ copy\_table(from\_table, to\_table, remaps = [])
69
69
  __Examples:__
70
70
 
71
71
 
72
- copy_table(old_users_without_email_hash, new_table, ['MD5(email)', 'email_hash'])
72
+ copy_table_data(old_users_without_email_hash, new_table, ['MD5(email)', 'email_hash'])
73
73
 
74
- copy_table(old_users_without_total, new_table, [['sum(payments)', 'total_payments'], ['avg(payments)', 'average_payments']])
74
+ copy_table_data(old_users_without_total, new_table, [['sum(payments)', 'total_payments'], ['avg(payments)', 'average_payments']])
Binary file
@@ -6,7 +6,7 @@ Gem::Specification.new do |s|
6
6
  s.name = "fast_change_table"
7
7
  s.version = FastChangeTable::VERSION::STRING
8
8
  s.authors = ["Grady Griffin"]
9
- s.email = ["gradyg@izea.com"]
9
+ s.email = ["gradygriffin@gmail.com"]
10
10
  s.homepage = "https://github.com/thegboat/fast_change_table"
11
11
  s.summary = %q{Faster table changes}
12
12
  s.description = %q{Uses table duplication to speed up migrations on large tables}
@@ -23,9 +23,11 @@ Gem::Specification.new do |s|
23
23
  s.add_runtime_dependency('activerecord', '>= 2.3')
24
24
  s.add_development_dependency("rspec")
25
25
  s.add_development_dependency("mysql2")
26
+ s.add_development_dependency("sqlite3")
26
27
  else
27
28
  s.add_dependency('activerecord', '>= 2.3')
28
29
  s.add_development_dependency("rspec")
29
30
  s.add_development_dependency("mysql2")
31
+ s.add_development_dependency("sqlite3")
30
32
  end
31
33
  end
@@ -10,7 +10,7 @@ module FastChangeTable
10
10
  renamed_columns = change_table_with_remaps(table_name, options, &block)
11
11
  index_list = options[:disable_keys] == false ? [] : disable_indexes(table_name)
12
12
  #prepare the columns names for the insert statements
13
- copy_table(old_table_name, table_name, renamed_columns)
13
+ copy_table_data(old_table_name, table_name, renamed_columns)
14
14
  enable_indexes(table_name, index_list) unless options[:disable_keys] == false
15
15
  drop_table(old_table_name)
16
16
  rescue Exception => e
@@ -56,8 +56,8 @@ module FastChangeTable
56
56
  true
57
57
  end
58
58
 
59
- #copy_table( :sometable, :newtable, [[:old_column, :new_column]])
60
- def copy_table(from, to, remaps = [])
59
+ #copy_table_data( :sometable, :newtable, [[:old_column, :new_column]])
60
+ def copy_table_data(from, to, remaps = [])
61
61
  old = columns(from).collect(&:name)
62
62
  current = columns(to).collect(&:name)
63
63
  remapped_columns = remaps.collect {|c| c.first.to_s}.compact
@@ -1,8 +1,8 @@
1
1
  module FastChangeTable
2
2
  module VERSION
3
3
  MAJOR = 1
4
- MINOR = 5
5
- TINY = 1
4
+ MINOR = 6
5
+ TINY = 0
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
@@ -8,6 +8,11 @@ describe ActiveRecord::Migration do
8
8
  t.string :a_name
9
9
  t.string :old_name
10
10
  end
11
+ unless defined?(TestClass)
12
+ klass = Class.new(ActiveRecord::Base)
13
+ klass.table_name = "my_table"
14
+ Kernel.const_set("TestClass", klass)
15
+ end
11
16
  @connection = ActiveRecord::Migration.connection
12
17
  end
13
18
 
@@ -61,12 +66,12 @@ describe ActiveRecord::Migration do
61
66
  end
62
67
  end
63
68
 
64
- describe "#copy_table" do
69
+ describe "#copy_table_data" do
65
70
  it "should copy the records from one table to another" do
66
- @connection.execute "INSERT my_table (an_integer, a_string, a_name) VALUES (1,'String','Name')"
71
+ TestClass.create(:an_integer => 1, :a_string => 'String', :a_name => 'Name')
67
72
  ActiveRecord::Migration.create_table_like(:my_table, :my_copied_table)
68
73
  ActiveRecord::Migration.add_column(:my_copied_table, :new_column, :string)
69
- ActiveRecord::Migration.copy_table(:my_table, :my_copied_table, [["'Nothing'", "new_column"]])
74
+ ActiveRecord::Migration.copy_table_data(:my_table, :my_copied_table, [["'Nothing'", "new_column"]])
70
75
  record = @connection.select_all("select * from my_copied_table").first
71
76
  record['an_integer'].should eq(1)
72
77
  record['a_string'].should eq('String')
@@ -77,7 +82,7 @@ describe ActiveRecord::Migration do
77
82
 
78
83
  describe "#fast_change_table" do
79
84
  it "should bring it all together" do
80
- @connection.execute "INSERT my_table (an_integer, a_string, a_name) VALUES (1,'String','Name')"
85
+ TestClass.create(:an_integer => 1, :a_string => 'String', :a_name => 'Name')
81
86
  ActiveRecord::Migration.add_index :my_table, :an_integer, :name => "an_index"
82
87
  ActiveRecord::Migration.fast_change_table :my_table, :remove_keys => true do |t|
83
88
  t.change :an_integer, :integer
@@ -7,9 +7,14 @@ RSpec.configure do |config|
7
7
  # some (optional) config here
8
8
  end
9
9
 
10
+ # ActiveRecord::Base.establish_connection(
11
+ # :adapter => "mysql2",
12
+ # :database => "fast_change_table_test"
13
+ # )
14
+
10
15
  ActiveRecord::Base.establish_connection(
11
- :adapter => "mysql2",
12
- :database => "fast_change_table_test"
16
+ :adapter => "sqlite3",
17
+ :database => "db/test.db"
13
18
  )
14
19
 
15
20
 
metadata CHANGED
@@ -1,56 +1,89 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: fast_change_table
3
- version: !ruby/object:Gem::Version
4
- version: 1.5.1
3
+ version: !ruby/object:Gem::Version
4
+ hash: 15
5
5
  prerelease:
6
+ segments:
7
+ - 1
8
+ - 6
9
+ - 0
10
+ version: 1.6.0
6
11
  platform: ruby
7
- authors:
12
+ authors:
8
13
  - Grady Griffin
9
14
  autorequire:
10
15
  bindir: bin
11
16
  cert_chain: []
12
- date: 2012-03-02 00:00:00.000000000 Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
17
+
18
+ date: 2012-03-21 00:00:00 Z
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
15
21
  name: activerecord
16
- requirement: &70205560655920 !ruby/object:Gem::Requirement
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
17
24
  none: false
18
- requirements:
19
- - - ! '>='
20
- - !ruby/object:Gem::Version
21
- version: '2.3'
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ hash: 5
29
+ segments:
30
+ - 2
31
+ - 3
32
+ version: "2.3"
22
33
  type: :runtime
23
- prerelease: false
24
- version_requirements: *70205560655920
25
- - !ruby/object:Gem::Dependency
34
+ version_requirements: *id001
35
+ - !ruby/object:Gem::Dependency
26
36
  name: rspec
27
- requirement: &70205560655020 !ruby/object:Gem::Requirement
37
+ prerelease: false
38
+ requirement: &id002 !ruby/object:Gem::Requirement
28
39
  none: false
29
- requirements:
30
- - - ! '>='
31
- - !ruby/object:Gem::Version
32
- version: '0'
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ hash: 3
44
+ segments:
45
+ - 0
46
+ version: "0"
33
47
  type: :development
34
- prerelease: false
35
- version_requirements: *70205560655020
36
- - !ruby/object:Gem::Dependency
48
+ version_requirements: *id002
49
+ - !ruby/object:Gem::Dependency
37
50
  name: mysql2
38
- requirement: &70205560654120 !ruby/object:Gem::Requirement
51
+ prerelease: false
52
+ requirement: &id003 !ruby/object:Gem::Requirement
39
53
  none: false
40
- requirements:
41
- - - ! '>='
42
- - !ruby/object:Gem::Version
43
- version: '0'
54
+ requirements:
55
+ - - ">="
56
+ - !ruby/object:Gem::Version
57
+ hash: 3
58
+ segments:
59
+ - 0
60
+ version: "0"
44
61
  type: :development
62
+ version_requirements: *id003
63
+ - !ruby/object:Gem::Dependency
64
+ name: sqlite3
45
65
  prerelease: false
46
- version_requirements: *70205560654120
66
+ requirement: &id004 !ruby/object:Gem::Requirement
67
+ none: false
68
+ requirements:
69
+ - - ">="
70
+ - !ruby/object:Gem::Version
71
+ hash: 3
72
+ segments:
73
+ - 0
74
+ version: "0"
75
+ type: :development
76
+ version_requirements: *id004
47
77
  description: Uses table duplication to speed up migrations on large tables
48
- email:
49
- - gradyg@izea.com
78
+ email:
79
+ - gradygriffin@gmail.com
50
80
  executables: []
81
+
51
82
  extensions: []
83
+
52
84
  extra_rdoc_files: []
53
- files:
85
+
86
+ files:
54
87
  - .gitignore
55
88
  - CHANGELOG.md
56
89
  - Gemfile
@@ -58,6 +91,7 @@ files:
58
91
  - MIT-LICENSE
59
92
  - README.md
60
93
  - Rakefile
94
+ - db/test.db
61
95
  - fast_change_table.gemspec
62
96
  - lib/fast_change_table.rb
63
97
  - lib/fast_change_table/fast_change_table.rb
@@ -67,28 +101,37 @@ files:
67
101
  - spec/spec_helper.rb
68
102
  homepage: https://github.com/thegboat/fast_change_table
69
103
  licenses: []
104
+
70
105
  post_install_message:
71
106
  rdoc_options: []
72
- require_paths:
107
+
108
+ require_paths:
73
109
  - lib
74
- required_ruby_version: !ruby/object:Gem::Requirement
110
+ required_ruby_version: !ruby/object:Gem::Requirement
75
111
  none: false
76
- requirements:
77
- - - ! '>='
78
- - !ruby/object:Gem::Version
79
- version: '0'
80
- required_rubygems_version: !ruby/object:Gem::Requirement
112
+ requirements:
113
+ - - ">="
114
+ - !ruby/object:Gem::Version
115
+ hash: 3
116
+ segments:
117
+ - 0
118
+ version: "0"
119
+ required_rubygems_version: !ruby/object:Gem::Requirement
81
120
  none: false
82
- requirements:
83
- - - ! '>='
84
- - !ruby/object:Gem::Version
85
- version: '0'
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ hash: 3
125
+ segments:
126
+ - 0
127
+ version: "0"
86
128
  requirements: []
129
+
87
130
  rubyforge_project: fast_change_table
88
131
  rubygems_version: 1.8.15
89
132
  signing_key:
90
133
  specification_version: 3
91
134
  summary: Faster table changes
92
- test_files:
135
+ test_files:
93
136
  - spec/fast_change_table_spec.rb
94
137
  - spec/spec_helper.rb