mimi-db 0.2.4 → 0.2.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7d8e5f05648963455f22f4495aeed73bbab8edd4
4
- data.tar.gz: b519848493d926249f1be91a586e80aaceff153e
3
+ metadata.gz: 77da501ee9dad1b22c2f8f17f938dc701c5df03e
4
+ data.tar.gz: c6440fe69bcb73a29ad9c239d5a504657fa8dbdb
5
5
  SHA512:
6
- metadata.gz: 0f61958bb7e08cbf6d2ed28e8ed566a983f38365894257eb84b5ed579da21b248cfbd6898a964d267b22e1d22a6b806c6c0add014afa245a143c997a0a784fbf
7
- data.tar.gz: 5256b301a6bd6891cf3cf47698ae34608b9b68858b7d39c1854da2bfc041779b2dfacd101c6b7306b569d91e95c28298beae2aadbec97c3f3ba872a273783ff0
6
+ metadata.gz: 6d11416400e44f5ddc01a9b0f1aaf624ee1e414ce433397d90dc1ccd28f9b81abc48d7d0a1c73cc7d75d008ddf9006b972a2d560eccfec14704807af5363c82f
7
+ data.tar.gz: d22d678cf97f8c05a9032c4adfd4ed7ffdeb3653f7ae000e0c7a6be85f5aac6f6f140ec4ee9d820493a78d70bb22c83b35d12f22dae6e019208c513ffdce7aa8
@@ -91,7 +91,7 @@ module Mimi
91
91
  # @param opts [Hash]
92
92
  # @return [Hash]
93
93
  #
94
- def self.diff_schema!(opts = {})
94
+ def self.diff_schema(opts = {})
95
95
  logger = opts[:logger] || ActiveRecord::Base.logger
96
96
  diff = { add_tables: [], change_tables: [], drop_tables: []}
97
97
  Mimi::DB.all_table_names.each do |t|
@@ -83,7 +83,7 @@ module Mimi
83
83
  # # }
84
84
  # @return [Hash]
85
85
  #
86
- def diff_schema!(opts = {})
86
+ def diff_schema(opts = {})
87
87
  opts[:logger] ||= Mimi::DB.logger
88
88
  Mimi::DB::Dictate.diff_schema(opts)
89
89
  end
@@ -1,5 +1,5 @@
1
1
  module Mimi
2
2
  module DB
3
- VERSION = '0.2.4'.freeze
3
+ VERSION = '0.2.5'.freeze
4
4
  end
5
5
  end
data/lib/tasks/db.rake CHANGED
@@ -63,9 +63,31 @@ namespace :db do
63
63
  desc 'Display differences between existing DB schema and target schema'
64
64
  task diff: :"db:start" do
65
65
  logger.info "* Diff database schema: #{Mimi::DB.module_options[:db_database]}"
66
- diff = Mimi::DB.diff_schema(destructive: true, dry_run: true)
66
+ diff = Mimi::DB.diff_schema!(destructive: true, dry_run: true)
67
67
  require 'pp'
68
- pp diff
68
+ diff[:add_tables].each do |t|
69
+ puts "-- ADD table: #{t.table_name}"
70
+ pp t.to_h
71
+ end
72
+ diff[:change_tables].each do |t|
73
+ puts "-- ALTER table: #{t[:table_name]}"
74
+ columns = t[:columns]
75
+ columns.each do |c, c_diff|
76
+ puts " -- ALTER COLUMN #{c}"
77
+ puts " -- FROM:"
78
+ pp c_diff[:from].to_h
79
+ puts " -- TO:"
80
+ pp c_diff[:to].to_h
81
+ end
82
+ indexes = t[:indexes]
83
+ indexes.each do |cols, i_diff|
84
+ puts " -- ADD INDEX: #{cols}, #{i_diff[:to].to_h}" if i_diff[:from].nil? && i_diff[:to]
85
+ puts " -- DROP INDEX: #{cols}" if i_diff[:from] && i_diff[:to].nil?
86
+ end
87
+ end
88
+ diff[:drop_tables].each do |t|
89
+ puts "-- DROP table: #{t}"
90
+ end
69
91
  end
70
92
  end
71
93
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mimi-db
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.4
4
+ version: 0.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alex Kukushkin