db-migrate 0.0.1 → 0.0.2

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: 9d20012ab53ae15b7b98fec15bb8eae3abd9914e
4
- data.tar.gz: e02941b8c31643efaa71774d67b22aba0c4f2bc8
3
+ metadata.gz: 0ae9108533b672071c775942824aab96ced8deab
4
+ data.tar.gz: de210600aaed6da647956f743bddd708f2fdfa88
5
5
  SHA512:
6
- metadata.gz: 6d316f5e858dcdfad7e16449cd78abf3a8a44e51111cb26411467d89bdbaf2cf8900728abebe1f697d05b6553e1dd8839400957ba310d9bb4e4b6066625c13ce
7
- data.tar.gz: 8538758ab5dc8d23e9b1923b777187cbb7321d58e7efbe97bd26aa3fca37f32a033bfe795bb6d56f2830e46d9141fc3ee85572cf1a42ade898fe19dd5cc822a6
6
+ metadata.gz: b0ce6ee5faa4921991d7c65ee3e532e6163358f074c00c61cb0ce9e1a0ca308c9a5c10e019b15ea0c59d3e71ee8580866bfd9d4dc0d1df00502e90b158236f4b
7
+ data.tar.gz: 9d0da18f6ce6190fd6410d9a9887e4d5a30dad263b877b7c153af2ecbc0fa5f6a9de784f19b244459f6c36ce6827db206cb5a0a427995ae7085ab30dbbd167a2
data/.gitignore CHANGED
@@ -1,3 +1,5 @@
1
1
  *.conf
2
2
  *.config
3
3
  spec/lib/fixtures/v*
4
+ .bundle/
5
+ vendor
@@ -4,3 +4,13 @@ rvm:
4
4
  - 2.0.0
5
5
  - 2.1
6
6
  - 2.2
7
+
8
+ script: "bundle exec rspec"
9
+
10
+ services:
11
+ - mysql
12
+ - postgresql
13
+
14
+ before_script:
15
+ - mysql -e 'create database migrate_test;'
16
+ - psql -c 'create database migrate_test;' -U postgres
data/Gemfile CHANGED
@@ -2,5 +2,3 @@
2
2
  source "https://rubygems.org"
3
3
 
4
4
  gemspec
5
-
6
- gem "rspec"
@@ -1,13 +1,14 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- migrate (0.0.1)
4
+ db-migrate (0.0.2)
5
5
  colorize (= 0.7.7)
6
6
  highline (= 1.7.8)
7
7
  json (= 1.8.3)
8
8
  mysql2 (= 0.4.2)
9
9
  parseconfig (= 1.0.6)
10
10
  pg (= 0.18.4)
11
+ terminal-table (= 1.5.2)
11
12
  thor (= 0.19.1)
12
13
 
13
14
  GEM
@@ -33,13 +34,14 @@ GEM
33
34
  diff-lcs (>= 1.2.0, < 2.0)
34
35
  rspec-support (~> 3.4.0)
35
36
  rspec-support (3.4.1)
37
+ terminal-table (1.5.2)
36
38
  thor (0.19.1)
37
39
 
38
40
  PLATFORMS
39
41
  ruby
40
42
 
41
43
  DEPENDENCIES
42
- migrate!
44
+ db-migrate!
43
45
  rspec
44
46
 
45
47
  BUNDLED WITH
data/README.md CHANGED
@@ -1,9 +1,16 @@
1
1
  # migrate
2
+ [![Build Status](https://travis-ci.org/ivpusic/migrate.svg?branch=master)](https://travis-ci.org/ivpusic/migrate)
2
3
 
3
4
  Tool for managing and executing your database migrations.
4
5
 
6
+ ## Installation
7
+
8
+ ```
9
+ gem install db-migrate
10
+ ```
11
+
5
12
  ### How it works?
6
- It saves metadata about your migrations to database. It uses that metadata for executing and creating new migrations.
13
+ It saves metadata about your migrations to database and uses that metadata for executing and creating new migrations.
7
14
 
8
15
  It supports multiple databases and multiple languages for executing migrations.
9
16
 
@@ -18,7 +25,9 @@ It supports multiple databases and multiple languages for executing migrations.
18
25
  - Javascript (Node.js)
19
26
  - Go
20
27
 
21
- ### What I can do with it?
28
+ ## How to use it?
29
+
30
+ ##### --help
22
31
  ```
23
32
  Commands:
24
33
  migrate init # make configuration file
@@ -36,19 +45,50 @@ Options:
36
45
  # Default: migrate.conf
37
46
  ```
38
47
 
39
- ### How to use it?
40
-
48
+ #### init
41
49
  First thing you have to do is to make initial configuration with **migrate init** command.
50
+
51
+ **Demo:**
52
+ ```
53
+ $ migrate init
54
+ [INFO] Creating configuration...
55
+ 1. mysql
56
+ 2. pg
57
+ Which database do you prefer?
58
+ 1
59
+ 1. sql
60
+ 2. ruby
61
+ 3. javascript
62
+ 4. go
63
+ 5. python
64
+ What language would you like use for your migration scripts?
65
+ 1
66
+ Host: |localhost|
67
+ Port: |3306|
68
+ Database Name: |mydb|
69
+ User: |root|
70
+ Password: password
71
+ Version info table: |version_info|
72
+ Version number table: |version_number|
73
+ [SUCCESS] Configuration file created. Location: `./migrate.conf`
74
+ ```
75
+
76
+ #### new
42
77
  After that you can start generating migrations by using **migrate new** command. This will generate migration script for you based on your prefered language.
43
78
 
79
+ #### up
44
80
  When you are done with writing your `up` and `down` migration script, you can execute **migrate up** to run up migration script for new version. You can also execute multiple migrations in single call by providing `--to n` argument, where `n` is highest version where you want to navigate.
45
81
 
82
+ #### down
46
83
  You can also use **migrate down** to go one version back. `down` comand also accepts `--to n` argument, but in this case `n` is lowest version where you want to navigate.
47
84
 
85
+ #### version
48
86
  If you are asking yourself about current version, use **migrate version** to find out current version.
49
87
 
88
+ #### delete
50
89
  If you don't need some migration, use **migrate delete n** to remove version `n`.
51
90
 
91
+ #### list
52
92
  You can see list of your migrations by running **migrate list**. This command also provides some additional options for filtering results.
53
93
 
54
94
  ## Contributing
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'db-migrate'
3
- s.version = '0.0.1'
3
+ s.version = '0.0.2'
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."
@@ -10,7 +10,7 @@ Gem::Specification.new do |s|
10
10
  s.homepage = 'https://github.com/ivpusic/migrate'
11
11
  s.executables << 'migrate'
12
12
 
13
- # deps
13
+ # runtime deps
14
14
  s.add_runtime_dependency 'thor', ['0.19.1']
15
15
  s.add_runtime_dependency 'highline', ['1.7.8']
16
16
  s.add_runtime_dependency 'json', ['1.8.3']
@@ -18,4 +18,8 @@ Gem::Specification.new do |s|
18
18
  s.add_runtime_dependency 'pg', ['0.18.4']
19
19
  s.add_runtime_dependency 'parseconfig', ['1.0.6']
20
20
  s.add_runtime_dependency 'colorize', ['0.7.7']
21
+ s.add_runtime_dependency 'terminal-table', ['1.5.2']
22
+
23
+ # dev deps
24
+ s.add_development_dependency "rspec"
21
25
  end
@@ -1,5 +1,5 @@
1
1
  require_relative "./migrate/logger"
2
- require_relative "./migrate/config"
2
+ require_relative "./migrate/conf"
3
3
  require_relative "./migrate/storage"
4
4
  require_relative "./migrate/lang"
5
5
  require_relative "./migrate/migrator"
@@ -1,7 +1,7 @@
1
1
  require "parseconfig"
2
2
 
3
3
  module Migrate
4
- class Config
4
+ class Conf
5
5
  attr_reader :root
6
6
 
7
7
  def initialize(root, file)
@@ -1,5 +1,4 @@
1
1
  require "pg"
2
- require "pry"
3
2
 
4
3
  module Migrate
5
4
  module Storage
@@ -1,7 +1,7 @@
1
- describe "Config" do
2
- let(:fixtures) { "spec/lib/fixtures" }
3
- let(:config) { Config.new(fixtures, "example.config") }
4
- let(:config_hash) {
1
+ describe "Conf" do
2
+ let!(:fixtures) { "spec/lib/fixtures" }
3
+ let!(:config) { Conf.new(fixtures, "example.config") }
4
+ let!(:config_hash) {
5
5
  {
6
6
  host: "localhost",
7
7
  port: ("5432").to_i,
@@ -22,21 +22,18 @@ describe "Config" do
22
22
  end
23
23
 
24
24
  it "should not find file" do
25
- config = Config.new(".", "custom_file.conf")
25
+ config = Conf.new(".", "custom_file.conf")
26
26
  expect(config.exists?).to eq(false)
27
27
  end
28
28
 
29
- it "should find file" do
30
- expect(config.exists?).to eq(true)
31
- end
32
-
33
29
  it "should create config file" do
34
30
  config_path = "#{fixtures}/test.config"
35
31
  begin
36
32
  expect(File.exist? config_path).to be false
37
33
 
38
- config = Config.new(fixtures, "test.config")
34
+ config = Conf.new(fixtures, "test.config")
39
35
  config.init(config_hash)
36
+ expect(config.exists?).to eq(true)
40
37
  expect(File.exist? config_path). to be true
41
38
  ensure
42
39
  if File.exist? config_path
@@ -44,7 +41,7 @@ describe "Config" do
44
41
  end
45
42
  end
46
43
  end
47
-
44
+
48
45
  it "should load configuration" do
49
46
  config.init(config_hash)
50
47
  config.load!
@@ -62,7 +59,7 @@ describe "Config" do
62
59
  begin
63
60
  expect(File.exist? config_path).to be false
64
61
 
65
- config = Config.new(fixtures, "test.config")
62
+ config = Conf.new(fixtures, "test.config")
66
63
  config.init(config_hash)
67
64
  expect(File.exist? config_path).to be true
68
65
  config.delete
@@ -14,12 +14,12 @@ $config_base = {
14
14
  $pg_config_hash = $config_base.merge({
15
15
  :storage => "pg",
16
16
  :port => 5432,
17
- :user => "migrate",
18
- :password => "migrate"
17
+ :user => "postgres",
18
+ :password => ""
19
19
  })
20
20
 
21
21
  def load_pg_config
22
- config = Config.new("spec/lib/fixtures", "example_pg.config")
22
+ config = Conf.new("spec/lib/fixtures", "example_pg.config")
23
23
  config.init($pg_config_hash)
24
24
  config.load!
25
25
  return config
@@ -28,12 +28,12 @@ end
28
28
  $mysql_config_hash = $config_base.merge({
29
29
  :storage => "mysql",
30
30
  :port => 3306,
31
- :user => "migrate",
32
- :password => "migrate"
31
+ :user => "root",
32
+ :password => ""
33
33
  })
34
34
 
35
35
  def load_mysql_config
36
- config = Config.new("spec/lib/fixtures", "example_mysql.config")
36
+ config = Conf.new("spec/lib/fixtures", "example_mysql.config")
37
37
  config.init($mysql_config_hash)
38
38
  config.load!
39
39
  return config
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: db-migrate
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ivan Pusic
@@ -108,6 +108,34 @@ dependencies:
108
108
  - - '='
109
109
  - !ruby/object:Gem::Version
110
110
  version: 0.7.7
111
+ - !ruby/object:Gem::Dependency
112
+ name: terminal-table
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - '='
116
+ - !ruby/object:Gem::Version
117
+ version: 1.5.2
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - '='
123
+ - !ruby/object:Gem::Version
124
+ version: 1.5.2
125
+ - !ruby/object:Gem::Dependency
126
+ name: rspec
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
111
139
  description: Tool for managing and executing your database migrations. It supports
112
140
  multiple databases and multiple languages for writing migration scripts.
113
141
  email: pusic007@gmail.com
@@ -124,8 +152,9 @@ files:
124
152
  - LICENSE
125
153
  - README.md
126
154
  - bin/migrate
155
+ - db-migrate.gemspec
127
156
  - lib/migrate.rb
128
- - lib/migrate/config.rb
157
+ - lib/migrate/conf.rb
129
158
  - lib/migrate/errors.rb
130
159
  - lib/migrate/lang.rb
131
160
  - lib/migrate/lang/go.rb
@@ -140,9 +169,7 @@ files:
140
169
  - lib/migrate/storage/db.rb
141
170
  - lib/migrate/storage/mysql.rb
142
171
  - lib/migrate/storage/postgres.rb
143
- - migrate.gemspec
144
172
  - spec/lib/config_spec.rb
145
- - spec/lib/fixtures/example.config
146
173
  - spec/lib/fixtures/go/down.go
147
174
  - spec/lib/fixtures/go/up.go
148
175
  - spec/lib/fixtures/js/down.js