db-migrate 0.0.4 → 0.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.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/bin/migrate +60 -56
- data/db-migrate.gemspec +1 -1
- 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: ac44f2774f5bba1b5c0dd8dfc04e423361e92d70
|
4
|
+
data.tar.gz: 48aadd589116df00d4e840a827fa0a94e98f26e1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4174f718724905b41d451e9ac0a3d1fea778f657bb04e590b62053b011e4a7eec3283d9140f9472f9854bea07bad425b93a8df5d64dd94b8bafe490857c107bf
|
7
|
+
data.tar.gz: 24d4d0239d8b23262b6daa86b89d8f8e37ba43e6c7f853cb43915d669b47f916011f37adbca9a2e3916d56ca7b751a1c69415fa8982fe3c9e40c5f20563c113e
|
data/Gemfile.lock
CHANGED
data/bin/migrate
CHANGED
@@ -26,9 +26,9 @@ class CLI < Thor
|
|
26
26
|
def initialize(*args)
|
27
27
|
super
|
28
28
|
@config = Conf.new(options["root"], options["config"])
|
29
|
-
|
30
29
|
init_invoked = ARGV.length > 0 && ARGV[0] == "init"
|
31
|
-
|
30
|
+
|
31
|
+
if @config.exists?
|
32
32
|
@config.load!
|
33
33
|
@migrator = Migrator.new(@config)
|
34
34
|
elsif not init_invoked
|
@@ -41,72 +41,76 @@ class CLI < Thor
|
|
41
41
|
|
42
42
|
desc "init", "make configuration file"
|
43
43
|
def init
|
44
|
-
|
44
|
+
if @migrator == nil
|
45
|
+
Log.info("Creating configuration...")
|
45
46
|
|
46
|
-
|
47
|
-
|
48
|
-
|
47
|
+
storage = nil
|
48
|
+
$asker.choose do |menu|
|
49
|
+
menu.prompt = "Which database do you prefer?"
|
49
50
|
|
50
|
-
|
51
|
-
|
52
|
-
|
51
|
+
menu.choice(:mysql) { storage = "mysql" }
|
52
|
+
menu.choices(:pg) { storage = "pg" }
|
53
|
+
end
|
53
54
|
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
55
|
+
install_dep = ""
|
56
|
+
case storage
|
57
|
+
when "pg"
|
58
|
+
if `gem list -i pg`.to_b != true
|
59
|
+
install_dep = "sudo gem install pg -v #{@@pg_version}"
|
60
|
+
Log.info "pg package not installed. Will install it."
|
61
|
+
end
|
62
|
+
when "mysql"
|
63
|
+
if `gem list -i mysql2`.to_b != "true"
|
64
|
+
install_dep = "sudo gem install mysql2 -v #{@@mysql_version}"
|
65
|
+
Log.info "mysql2 package not installed. Will install it."
|
66
|
+
end
|
60
67
|
end
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
68
|
+
|
69
|
+
unless install_dep.empty?
|
70
|
+
Log.info "Running '#{install_dep}'"
|
71
|
+
unless system(install_dep)
|
72
|
+
raise "Wrror while install dependencies. Please try to run '#{install_dep}' manually and try running 'init' again."
|
73
|
+
else
|
74
|
+
Log.info "Missing dependencies installed"
|
75
|
+
end
|
65
76
|
end
|
66
|
-
end
|
67
77
|
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
Log.info "Missing dependencies installed"
|
78
|
+
db_defaults = case storage
|
79
|
+
when "mysql"
|
80
|
+
{ :port => "3306", :user => "root" }
|
81
|
+
when "pg"
|
82
|
+
{ :port => "5432", :user => "postgres" }
|
74
83
|
end
|
75
|
-
end
|
76
84
|
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
when "pg"
|
81
|
-
{ :port => "5432", :user => "postgres" }
|
82
|
-
end
|
85
|
+
lang = nil
|
86
|
+
$asker.choose do |menu|
|
87
|
+
menu.prompt = "What language would you like use for your migration scripts?"
|
83
88
|
|
84
|
-
|
85
|
-
|
86
|
-
|
89
|
+
menu.choice(:sql) { lang = "sql" }
|
90
|
+
menu.choices(:ruby) { lang = "ruby" }
|
91
|
+
menu.choice(:javascript) { lang = "javascript" }
|
92
|
+
menu.choice(:go) { lang = "go" }
|
93
|
+
menu.choice(:python) { lang = "python" }
|
94
|
+
end
|
87
95
|
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
96
|
+
config = {
|
97
|
+
storage: storage,
|
98
|
+
lang: lang,
|
99
|
+
host: $asker.ask("Host: ") {|q| q.default = "localhost"},
|
100
|
+
port: ($asker.ask("Port: ") {|q| q.default = db_defaults[:port]}).to_i,
|
101
|
+
database: $asker.ask("Database Name: ") {|q| q.default = "mydb"},
|
102
|
+
user: $asker.ask("User: ") {|q| q.default = db_defaults[:user]},
|
103
|
+
password: $asker.ask("Password: ") {|q| q.echo = "x"},
|
104
|
+
version_info: $asker.ask("Version info table: ") {|q| q.default = "version_info"},
|
105
|
+
version_number: $asker.ask("Version number table: ") {|q| q.default = "version_number"}
|
106
|
+
}
|
107
|
+
|
108
|
+
@config.init(config)
|
109
|
+
@config.load!
|
110
|
+
@migrator = Migrator.new(@config)
|
93
111
|
end
|
94
112
|
|
95
|
-
|
96
|
-
storage: storage,
|
97
|
-
lang: lang,
|
98
|
-
host: $asker.ask("Host: ") {|q| q.default = "localhost"},
|
99
|
-
port: ($asker.ask("Port: ") {|q| q.default = db_defaults[:port]}).to_i,
|
100
|
-
database: $asker.ask("Database Name: ") {|q| q.default = "mydb"},
|
101
|
-
user: $asker.ask("User: ") {|q| q.default = db_defaults[:user]},
|
102
|
-
password: $asker.ask("Password: ") {|q| q.echo = "x"},
|
103
|
-
version_info: $asker.ask("Version info table: ") {|q| q.default = "version_info"},
|
104
|
-
version_number: $asker.ask("Version number table: ") {|q| q.default = "version_number"}
|
105
|
-
}
|
106
|
-
|
107
|
-
@config.init(config)
|
108
|
-
@config.load!
|
109
|
-
Migrator.new(@config).init
|
113
|
+
@migrator.init
|
110
114
|
rescue Exception => e
|
111
115
|
Log.error("Error while initialization.", e)
|
112
116
|
@config.delete
|
data/db-migrate.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'db-migrate'
|
3
|
-
s.version = '0.0
|
3
|
+
s.version = '0.1.0'
|
4
4
|
s.licenses = ['MIT']
|
5
5
|
s.summary = "Tool for managing and executing your database migrations."
|
6
6
|
s.description = "#{s.summary} It supports multiple databases and multiple languages for writing migration scripts."
|