mimi-db 0.2.4 → 0.2.5

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.
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