standalone_migrations 2.0.6 → 2.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.
- data/README.markdown +51 -0
- data/VERSION +1 -1
- data/lib/standalone_migrations/configurator.rb +5 -1
- data/spec/standalone_migrations/configurator_spec.rb +49 -1
- data/standalone_migrations.gemspec +2 -2
- metadata +3 -3
data/README.markdown
CHANGED
|
@@ -107,6 +107,56 @@ config:
|
|
|
107
107
|
These are the configurable options available. You can omit any of
|
|
108
108
|
the keys and Standalone Migrations will assume the default values.
|
|
109
109
|
|
|
110
|
+
###Multiple database support
|
|
111
|
+
|
|
112
|
+
####Structure
|
|
113
|
+
|
|
114
|
+
Create a custom configuration file for each database and name them `.database_name.standalone_migrations`. The same conditions apply as described under Custom Configuration, however you are most likely want to specify all options to avoid conflicts and errors.
|
|
115
|
+
|
|
116
|
+
An example set up would look like this:
|
|
117
|
+
|
|
118
|
+
```
|
|
119
|
+
app/
|
|
120
|
+
|-- db/
|
|
121
|
+
| |-- migrate/
|
|
122
|
+
| | |-- db1/
|
|
123
|
+
| | | |-- 001_migration.rb
|
|
124
|
+
| | |
|
|
125
|
+
| | |-- db2/
|
|
126
|
+
| | |-- 001_migration.rb
|
|
127
|
+
| |
|
|
128
|
+
| |-- config_db1.yml
|
|
129
|
+
| |-- config_db2.yml
|
|
130
|
+
| |-- seeds_db1.rb
|
|
131
|
+
| |-- seeds_db2.rb
|
|
132
|
+
| |-- schema_db1.rb
|
|
133
|
+
| |-- schema_db2.rb
|
|
134
|
+
|
|
|
135
|
+
|-- .db1.standalone_migrations
|
|
136
|
+
|-- .db2.standalone_migrations
|
|
137
|
+
```
|
|
138
|
+
Sample config file:
|
|
139
|
+
|
|
140
|
+
```yaml
|
|
141
|
+
db:
|
|
142
|
+
seeds: db/seeds_db1.rb
|
|
143
|
+
migrate: db/migrate/db1
|
|
144
|
+
schema: db/schema_db1.rb
|
|
145
|
+
config:
|
|
146
|
+
database: db/config_db1.yml
|
|
147
|
+
```
|
|
148
|
+
Of course you can achieve a different layout by simply editing the paths.
|
|
149
|
+
|
|
150
|
+
#####Running
|
|
151
|
+
|
|
152
|
+
You can run the Rake tasks on a particular database by passing the `DATABASE` environment variable to it:
|
|
153
|
+
|
|
154
|
+
$ rake DATABASE=db1 db:version
|
|
155
|
+
|
|
156
|
+
Combined with the environment selector:
|
|
157
|
+
|
|
158
|
+
$ rake DATABASE=db2 DB=production db:migrate
|
|
159
|
+
|
|
110
160
|
#### Changing environment config in runtime
|
|
111
161
|
|
|
112
162
|
If you are using Heroku or have to create or change your connection
|
|
@@ -197,5 +247,6 @@ Contributors
|
|
|
197
247
|
- [Yuu Yamashita](https://github.com/yyuu)
|
|
198
248
|
- [Koen Punt](http://www.koen.pt/)
|
|
199
249
|
- [Parker Moore](http://www.parkermoore.de/)
|
|
250
|
+
- [Marcell Jusztin](http://www.morcmarc.com)
|
|
200
251
|
|
|
201
252
|
This work is originally based on [Lincoln Stoll's blog post](http://lstoll.net/2008/04/stand-alone-activerecord-migrations/) and [David Welton's post](http://journal.dedasys.com/2007/01/28/using-migrations-outside-of-rails).
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
2.0
|
|
1
|
+
2.1.0
|
|
@@ -14,6 +14,14 @@ module StandaloneMigrations
|
|
|
14
14
|
}
|
|
15
15
|
end
|
|
16
16
|
|
|
17
|
+
let(:env_hash_other_db) do
|
|
18
|
+
{
|
|
19
|
+
"development" => { "adapter" => "mysql2", "database" => "database_name" },
|
|
20
|
+
"test" => { "adapter" => "mysql2", "database" => "database_name" },
|
|
21
|
+
"production" => {"adapter" => "mysql2", "database" => "database_name" }
|
|
22
|
+
}
|
|
23
|
+
end
|
|
24
|
+
|
|
17
25
|
before(:all) do
|
|
18
26
|
@original_dir = Dir.pwd
|
|
19
27
|
Dir.chdir( File.expand_path("../../", __FILE__) )
|
|
@@ -156,13 +164,52 @@ module StandaloneMigrations
|
|
|
156
164
|
}
|
|
157
165
|
end
|
|
158
166
|
|
|
167
|
+
let(:yaml_hash_other_db) do
|
|
168
|
+
{
|
|
169
|
+
"db" => {
|
|
170
|
+
"seeds" => "db2/seeds.rb",
|
|
171
|
+
"migrate" => "db2/migrate",
|
|
172
|
+
"schema" => "db2/schema.rb"
|
|
173
|
+
},
|
|
174
|
+
"config" => {
|
|
175
|
+
"database" => "config/config_other.yml"
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
end
|
|
179
|
+
|
|
159
180
|
let(:configurator) do
|
|
160
181
|
file = ".standalone_migrations"
|
|
161
182
|
File.open(file, "w") { |file| file.write(yaml_hash.to_yaml) }
|
|
162
|
-
|
|
163
183
|
Configurator.new
|
|
164
184
|
end
|
|
165
185
|
|
|
186
|
+
context "with database environment variable passed" do
|
|
187
|
+
|
|
188
|
+
before(:all) do
|
|
189
|
+
ENV['DATABASE'] = "other_db"
|
|
190
|
+
end
|
|
191
|
+
|
|
192
|
+
let(:other_configurator) do
|
|
193
|
+
file_other_db = ".other_db.standalone_migrations"
|
|
194
|
+
File.open(file_other_db, "w") { |file| file.write(yaml_hash_other_db.to_yaml) }
|
|
195
|
+
Configurator.new
|
|
196
|
+
end
|
|
197
|
+
|
|
198
|
+
it "look up named dot file" do
|
|
199
|
+
other_configurator.config.should == yaml_hash_other_db['config']['database']
|
|
200
|
+
end
|
|
201
|
+
|
|
202
|
+
it "load config from named dot file" do
|
|
203
|
+
other_configurator.migrate_dir.should == 'db2/migrate'
|
|
204
|
+
end
|
|
205
|
+
|
|
206
|
+
after(:all) do
|
|
207
|
+
File.delete ".other_db.standalone_migrations"
|
|
208
|
+
ENV['DATABASE'] = nil
|
|
209
|
+
end
|
|
210
|
+
|
|
211
|
+
end
|
|
212
|
+
|
|
166
213
|
context "with some configurations missing" do
|
|
167
214
|
|
|
168
215
|
let(:yaml_hash) do
|
|
@@ -180,6 +227,7 @@ module StandaloneMigrations
|
|
|
180
227
|
it "use custom config from file" do
|
|
181
228
|
configurator.config.should == yaml_hash["config"]["database"]
|
|
182
229
|
end
|
|
230
|
+
|
|
183
231
|
end
|
|
184
232
|
|
|
185
233
|
it "use custom config from file" do
|
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
|
|
6
6
|
Gem::Specification.new do |s|
|
|
7
7
|
s.name = "standalone_migrations"
|
|
8
|
-
s.version = "2.0
|
|
8
|
+
s.version = "2.1.0"
|
|
9
9
|
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
|
11
11
|
s.authors = ["Todd Huss", "Michael Grosser"]
|
|
12
|
-
s.date = "2013-
|
|
12
|
+
s.date = "2013-04-04"
|
|
13
13
|
s.email = "thuss@gabrito.com"
|
|
14
14
|
s.extra_rdoc_files = [
|
|
15
15
|
"README.markdown"
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: standalone_migrations
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.0
|
|
4
|
+
version: 2.1.0
|
|
5
5
|
prerelease:
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
@@ -10,7 +10,7 @@ authors:
|
|
|
10
10
|
autorequire:
|
|
11
11
|
bindir: bin
|
|
12
12
|
cert_chain: []
|
|
13
|
-
date: 2013-
|
|
13
|
+
date: 2013-04-04 00:00:00.000000000 Z
|
|
14
14
|
dependencies:
|
|
15
15
|
- !ruby/object:Gem::Dependency
|
|
16
16
|
name: rake
|
|
@@ -109,7 +109,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
109
109
|
version: '0'
|
|
110
110
|
segments:
|
|
111
111
|
- 0
|
|
112
|
-
hash:
|
|
112
|
+
hash: 3953024186971658303
|
|
113
113
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
114
114
|
none: false
|
|
115
115
|
requirements:
|