db-charmer 1.5.4 → 1.5.5

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGES CHANGED
@@ -1,20 +1,40 @@
1
- 1.5.3 -> 1.5.4:
1
+ 1.5.5 (2010-03-15):
2
+
3
+ Thanks to ngmoco.com (http://github.com/ngmoco) now DbCharmer supports one more use-case
4
+ for multi-db migrations. Now you can run the same migration on many databases at once.
5
+ For example, the following migration would create test_table on all three shard databases:
6
+
7
+ class MultiDbTest < ActiveRecord::Migration
8
+ db_magic :connections => [ :shard01, :shard02, :shard03 ]
9
+
10
+ def self.up
11
+ create_table :test_table do |t|
12
+ t.string :test_string
13
+ t.timestamps
14
+ end
15
+ end
16
+
17
+ def self.down
18
+ drop_table :test_table
19
+ end
20
+ end
21
+
22
+ ----------------------------------------------------------------------------------------
23
+ 1.5.4 (2010-03-12):
2
24
 
3
25
  Added DbCharmer.with_remapped_databases, so that you can change the connection for
4
26
  many models simultaneously, and implicitly. Very useful for work where you want to use
5
27
  a particular slave for a whole range of database access.
6
28
 
7
29
  ----------------------------------------------------------------------------------------
8
-
9
- 1.5.1 -> 1.5.3:
30
+ 1.5.3 (2010-03-10):
10
31
 
11
32
  Few changes:
12
33
  * Colorized connection names in the logs for development mode
13
34
  * We do not log connection names when connection does not exist
14
35
 
15
36
  ----------------------------------------------------------------------------------------
16
-
17
- 1.5.0 -> 1.5.1:
37
+ 1.5.1 (2010-03-06):
18
38
 
19
39
  In this version we've added support for connection names logging in Rails queries log.
20
40
  New log records have [connection_name] prefix for all queries that are executed on
@@ -25,8 +45,7 @@ non-standard connections:
25
45
  [slave01] User Load (0.2ms) SELECT * FROM `users` WHERE (`users`.`login` = 'foo')
26
46
 
27
47
  ----------------------------------------------------------------------------------------
28
-
29
- 1.4.6 -> 1.5.0:
48
+ 1.4.6 -> 1.5.0 (2010-03-05):
30
49
 
31
50
  Major change in this version of DbCharmer is association preload support. For example,
32
51
  let's say we have a schema:
data/README.rdoc CHANGED
@@ -109,6 +109,23 @@ Migration class example (block-level connection rewrite):
109
109
  end
110
110
  end
111
111
 
112
+ Migration class example (global connection rewrite, multiple connections with the same table):
113
+ (NOTE: both :connection and :connections can take an array of connections)
114
+
115
+ class MultiDbTest < ActiveRecord::Migration
116
+ db_magic :connections => [:second_db, :default]
117
+
118
+ def self.up
119
+ create_table :test_table, :force => true do |t|
120
+ t.string :test_string
121
+ t.timestamps
122
+ end
123
+ end
124
+
125
+ def self.down
126
+ drop_table :test_table
127
+ end
128
+ end
112
129
 
113
130
  By default in development and test environments you could skip this <tt>:second_db</tt>
114
131
  connection from your database.yml files and rails would create the tables in your single database,
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.5.4
1
+ 1.5.5
data/db-charmer.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{db-charmer}
8
- s.version = "1.5.4"
8
+ s.version = "1.5.5"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Alexey Kovyrin"]
12
- s.date = %q{2010-03-12}
12
+ s.date = %q{2010-03-15}
13
13
  s.description = %q{ActiveRecord Connections Magic (slaves, multiple connections, etc)}
14
14
  s.email = %q{alexey@kovyrin.net}
15
15
  s.extra_rdoc_files = [
@@ -1,9 +1,9 @@
1
1
  module DbCharmer
2
2
  module MultiDbMigrations
3
- @@multi_db_name = nil
3
+ @multi_db_names = nil
4
4
 
5
5
  def migrate_with_db_wrapper(direction)
6
- on_db(@@multi_db_name) { migrate_without_db_wrapper(direction) }
6
+ @multi_db_names.each { |multi_db_name| on_db(multi_db_name) { migrate_without_db_wrapper(direction) } }
7
7
  end
8
8
 
9
9
  def on_db(db_name)
@@ -19,8 +19,9 @@ module DbCharmer
19
19
  end
20
20
 
21
21
  def db_magic(opts = {})
22
+ opts[:connection] = opts[:connections] if opts[:connections]
22
23
  raise ArgumentError, "No connection name - no magic!" unless opts[:connection]
23
- @@multi_db_name = opts[:connection]
24
+ @multi_db_names = [opts[:connection]].flatten
24
25
  class << self
25
26
  alias_method_chain :migrate, :db_wrapper
26
27
  end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 1
7
7
  - 5
8
- - 4
9
- version: 1.5.4
8
+ - 5
9
+ version: 1.5.5
10
10
  platform: ruby
11
11
  authors:
12
12
  - Alexey Kovyrin
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-03-12 00:00:00 -05:00
17
+ date: 2010-03-15 00:00:00 -04:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency