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 +4 -4
- data/lib/mimi/db/dictate.rb +1 -1
- data/lib/mimi/db/helpers.rb +1 -1
- data/lib/mimi/db/version.rb +1 -1
- data/lib/tasks/db.rake +24 -2
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 77da501ee9dad1b22c2f8f17f938dc701c5df03e
|
4
|
+
data.tar.gz: c6440fe69bcb73a29ad9c239d5a504657fa8dbdb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6d11416400e44f5ddc01a9b0f1aaf624ee1e414ce433397d90dc1ccd28f9b81abc48d7d0a1c73cc7d75d008ddf9006b972a2d560eccfec14704807af5363c82f
|
7
|
+
data.tar.gz: d22d678cf97f8c05a9032c4adfd4ed7ffdeb3653f7ae000e0c7a6be85f5aac6f6f140ec4ee9d820493a78d70bb22c83b35d12f22dae6e019208c513ffdce7aa8
|
data/lib/mimi/db/dictate.rb
CHANGED
@@ -91,7 +91,7 @@ module Mimi
|
|
91
91
|
# @param opts [Hash]
|
92
92
|
# @return [Hash]
|
93
93
|
#
|
94
|
-
def self.diff_schema
|
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|
|
data/lib/mimi/db/helpers.rb
CHANGED
data/lib/mimi/db/version.rb
CHANGED
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
|
-
|
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
|