db-migrate 0.0.1 → 0.0.2

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