departure 1.0.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.
@@ -0,0 +1,52 @@
1
+ # Setups the test database with the schema_migrations table that ActiveRecord
2
+ # requires for the migrations, plus a table for the Comment model used throught
3
+ # the tests.
4
+ #
5
+ class TestDatabase
6
+
7
+ # Constructor
8
+ #
9
+ # @param config [Hash]
10
+ def initialize(config)
11
+ @config = config
12
+ @database = config['database']
13
+ end
14
+
15
+ # Creates the test database, the schema_migrations and the comments tables.
16
+ # It drops any of them if they already exist
17
+ def setup
18
+ setup_test_database
19
+ drop_and_create_schema_migrations_table
20
+ end
21
+
22
+ # Creates the test database and the comments table in it.
23
+ # Before, it drops both if they already exist
24
+ def setup_test_database
25
+ drop_and_create_test_database
26
+ drop_and_create_comments_table
27
+ end
28
+
29
+ # Creates the ActiveRecord's schema_migrations table required for
30
+ # migrations to work. Before, it drops the table if it already exists
31
+ def drop_and_create_schema_migrations_table
32
+ %x(#{mysql_command} "USE #{database}; DROP TABLE IF EXISTS schema_migrations; CREATE TABLE schema_migrations ( version varchar(255) COLLATE utf8_unicode_ci NOT NULL, UNIQUE KEY unique_schema_migrations (version)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci")
33
+ end
34
+
35
+ private
36
+
37
+ attr_reader :config, :database
38
+
39
+ def drop_and_create_test_database
40
+ %x(#{mysql_command} "DROP DATABASE IF EXISTS #{database}; CREATE DATABASE #{database} DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_unicode_ci;")
41
+ end
42
+
43
+ def drop_and_create_comments_table
44
+ %x(#{mysql_command} "USE #{database}; DROP TABLE IF EXISTS comments; CREATE TABLE comments ( id int(12) NOT NULL AUTO_INCREMENT, PRIMARY KEY (id)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;")
45
+ end
46
+
47
+ # Returns the command to run the mysql client. It uses the crendentials from
48
+ # the provided config
49
+ def mysql_command
50
+ "mysql --user=#{config['username']} --password=#{config['password']} -e"
51
+ end
52
+ end
metadata ADDED
@@ -0,0 +1,195 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: departure
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Ilya Zayats
8
+ - Pau Pérez
9
+ - Fran Casas
10
+ - Jorge Morante
11
+ autorequire:
12
+ bindir: bin
13
+ cert_chain: []
14
+ date: 2017-04-19 00:00:00.000000000 Z
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: rails
18
+ requirement: !ruby/object:Gem::Requirement
19
+ requirements:
20
+ - - "~>"
21
+ - !ruby/object:Gem::Version
22
+ version: 3.2.22
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: 3.2.22
30
+ - !ruby/object:Gem::Dependency
31
+ name: mysql2
32
+ requirement: !ruby/object:Gem::Requirement
33
+ requirements:
34
+ - - "~>"
35
+ - !ruby/object:Gem::Version
36
+ version: 0.3.20
37
+ type: :runtime
38
+ prerelease: false
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - "~>"
42
+ - !ruby/object:Gem::Version
43
+ version: 0.3.20
44
+ - !ruby/object:Gem::Dependency
45
+ name: bundler
46
+ requirement: !ruby/object:Gem::Requirement
47
+ requirements:
48
+ - - "~>"
49
+ - !ruby/object:Gem::Version
50
+ version: '1.10'
51
+ type: :development
52
+ prerelease: false
53
+ version_requirements: !ruby/object:Gem::Requirement
54
+ requirements:
55
+ - - "~>"
56
+ - !ruby/object:Gem::Version
57
+ version: '1.10'
58
+ - !ruby/object:Gem::Dependency
59
+ name: rake
60
+ requirement: !ruby/object:Gem::Requirement
61
+ requirements:
62
+ - - "~>"
63
+ - !ruby/object:Gem::Version
64
+ version: '10.0'
65
+ type: :development
66
+ prerelease: false
67
+ version_requirements: !ruby/object:Gem::Requirement
68
+ requirements:
69
+ - - "~>"
70
+ - !ruby/object:Gem::Version
71
+ version: '10.0'
72
+ - !ruby/object:Gem::Dependency
73
+ name: rspec
74
+ requirement: !ruby/object:Gem::Requirement
75
+ requirements:
76
+ - - "~>"
77
+ - !ruby/object:Gem::Version
78
+ version: '3.4'
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: 3.4.0
82
+ type: :development
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: '3.4'
89
+ - - ">="
90
+ - !ruby/object:Gem::Version
91
+ version: 3.4.0
92
+ - !ruby/object:Gem::Dependency
93
+ name: rspec-its
94
+ requirement: !ruby/object:Gem::Requirement
95
+ requirements:
96
+ - - "~>"
97
+ - !ruby/object:Gem::Version
98
+ version: '1.2'
99
+ type: :development
100
+ prerelease: false
101
+ version_requirements: !ruby/object:Gem::Requirement
102
+ requirements:
103
+ - - "~>"
104
+ - !ruby/object:Gem::Version
105
+ version: '1.2'
106
+ - !ruby/object:Gem::Dependency
107
+ name: byebug
108
+ requirement: !ruby/object:Gem::Requirement
109
+ requirements:
110
+ - - "~>"
111
+ - !ruby/object:Gem::Version
112
+ version: '8.2'
113
+ - - ">="
114
+ - !ruby/object:Gem::Version
115
+ version: 8.2.1
116
+ type: :development
117
+ prerelease: false
118
+ version_requirements: !ruby/object:Gem::Requirement
119
+ requirements:
120
+ - - "~>"
121
+ - !ruby/object:Gem::Version
122
+ version: '8.2'
123
+ - - ">="
124
+ - !ruby/object:Gem::Version
125
+ version: 8.2.1
126
+ description: Execute your ActiveRecord migrations with Percona's pt-online-schema-change.
127
+ Formerly known as Percona Migrator.
128
+ email:
129
+ - ilya.zayats@redbooth.com
130
+ - pau.perez@redbooth.com
131
+ - fran.casas@redbooth.com
132
+ - jorge.morante@redbooth.com
133
+ executables: []
134
+ extensions: []
135
+ extra_rdoc_files: []
136
+ files:
137
+ - ".gitignore"
138
+ - ".rspec"
139
+ - ".travis.yml"
140
+ - CHANGELOG.md
141
+ - CODE_OF_CONDUCT.md
142
+ - Gemfile
143
+ - LICENSE.txt
144
+ - README.md
145
+ - Rakefile
146
+ - bin/console
147
+ - bin/setup
148
+ - config.yml
149
+ - configuration.rb
150
+ - departure.gemspec
151
+ - lib/active_record/connection_adapters/percona_adapter.rb
152
+ - lib/departure.rb
153
+ - lib/departure/alter_argument.rb
154
+ - lib/departure/cli_generator.rb
155
+ - lib/departure/configuration.rb
156
+ - lib/departure/errors.rb
157
+ - lib/departure/logger.rb
158
+ - lib/departure/logger_factory.rb
159
+ - lib/departure/null_logger.rb
160
+ - lib/departure/railtie.rb
161
+ - lib/departure/runner.rb
162
+ - lib/departure/version.rb
163
+ - lib/lhm.rb
164
+ - lib/lhm/adapter.rb
165
+ - lib/lhm/column_with_sql.rb
166
+ - lib/lhm/column_with_type.rb
167
+ - test_database.rb
168
+ homepage: http://github.com/redbooth/departure
169
+ licenses:
170
+ - MIT
171
+ metadata: {}
172
+ post_install_message: |2
173
+ ! The Percona_migrator gem has been deprecated and has been replaced by Departure.
174
+ ! See: https://rubygems.org/gems/departure
175
+ ! And: https://github.com/redbooth/departure
176
+ rdoc_options: []
177
+ require_paths:
178
+ - lib
179
+ required_ruby_version: !ruby/object:Gem::Requirement
180
+ requirements:
181
+ - - ">="
182
+ - !ruby/object:Gem::Version
183
+ version: '0'
184
+ required_rubygems_version: !ruby/object:Gem::Requirement
185
+ requirements:
186
+ - - ">="
187
+ - !ruby/object:Gem::Version
188
+ version: '0'
189
+ requirements: []
190
+ rubyforge_project:
191
+ rubygems_version: 2.6.10
192
+ signing_key:
193
+ specification_version: 4
194
+ summary: pt-online-schema-change runner for ActiveRecord migrations
195
+ test_files: []