pg_migrator 1.0.1 → 1.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +25 -9
- data/Rakefile +9 -3
- data/lib/db.rb +1 -2
- data/lib/pg_migrator.rb +1 -1
- data/pg_migrator.gemspec +1 -1
- data/tasks/config.rake +1 -4
- data/tasks/db.rake +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 29643f07a4823e69084a522fc53d3fad7c7e74a8
|
4
|
+
data.tar.gz: f88595756fed4b1365637f875a1a30fa3e3700d5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3d9900b17c50064d7211a7606b14fe1f6ba507c18b21d5d98151991d3344a767c81cd1b74370a4a592795810068c47ca833fd377ebb618cb137e6eec982dc48f
|
7
|
+
data.tar.gz: e9720f10fc0ec7b73149247a0c98253c4ac2da188b88dcb67951c8356705137ec221023d4dd09e9a22c4fd6929750c17b5c39cab3d6da81c40682dd973fb3b83
|
data/README.md
CHANGED
@@ -1,6 +1,9 @@
|
|
1
1
|
PG Migrator
|
2
2
|
===========
|
3
3
|
|
4
|
+
[![Gem Version](https://badge.fury.io/rb/pg_migrator.svg)](https://badge.fury.io/rb/pg_migrator)
|
5
|
+
[![Build Status](https://travis-ci.org/pyer/pg_migrator.svg?branch=master)](https://travis-ci.org/pyer/pg_migrator)
|
6
|
+
|
4
7
|
* This tool provides a set of Rake tasks to apply changes on different Postgres environments.
|
5
8
|
* Every change, upgrade or rollback, is versionned.
|
6
9
|
* Each environment is described by a configuration file.
|
@@ -44,18 +47,30 @@ Configuration
|
|
44
47
|
Migrations script files
|
45
48
|
-----------------------
|
46
49
|
|
47
|
-
Migration SQL scripts are stored in a directory compliant with
|
50
|
+
Migration SQL scripts are stored in a directory compliant with two configuration parameters, upgrade and downgrade.
|
48
51
|
Default directory is 'migrations'.
|
49
|
-
|
50
|
-
Version number is the
|
51
|
-
|
52
|
-
An empty newly created database is in version '000'.
|
52
|
+
Upgrade and downgrade SQL script file names must be compliant with upgrade and downgrade parameters in the configuration file.
|
53
|
+
Version number is text between the last character '/' and next character '\_' in script file name.
|
54
|
+
An empty newly created database is in version set by version0 parameter.
|
53
55
|
Several files can have the same version number.
|
54
56
|
|
55
|
-
|
57
|
+
Version number can be 000, 0.1.1, 0.09, 1.2a or any other text.
|
58
|
+
Next version number is given by #next method of String object.
|
59
|
+
Beware, next version of 1.9 is 2.0 and next version of 1.09 is 1.10
|
60
|
+
|
61
|
+
Example: version 0.02
|
62
|
+
|
63
|
+
* Update parameter
|
64
|
+
`upgrade = migrations/\*_up_\*.sql`
|
56
65
|
|
57
|
-
|
58
|
-
|
66
|
+
* Script file: migrations/0.02_up_add_id_3_in_tablename.sql
|
67
|
+
`INSERT INTO tablename (id, caption) VALUES (3,'something');`
|
68
|
+
|
69
|
+
* Downgrade parameter
|
70
|
+
`downgrade = migrations/\*_down_\*.sql`
|
71
|
+
|
72
|
+
* Script file: migrations/0.02_down_add_id_3_in_tablename.sql
|
73
|
+
`DELETE FROM tablename WHERE id = 3;`
|
59
74
|
|
60
75
|
|
61
76
|
Database requirements
|
@@ -64,7 +79,8 @@ Database requirements
|
|
64
79
|
* For now, database engine MUST BE Postgres.
|
65
80
|
* The database MUST NOT have a table called 'migrations'.
|
66
81
|
* Database version is the version of the last database upgrade, stored in the 'migrations' table.
|
67
|
-
*
|
82
|
+
* Downgrade are not logged in migrations table.
|
83
|
+
|
68
84
|
|
69
85
|
Options
|
70
86
|
-------
|
data/Rakefile
CHANGED
@@ -33,7 +33,13 @@ task install: 'build' do
|
|
33
33
|
gi.install
|
34
34
|
end
|
35
35
|
|
36
|
-
|
37
|
-
|
38
|
-
|
36
|
+
# load pg_migrator rake files for local dev and test
|
37
|
+
begin
|
38
|
+
Gem::Specification.find_by_name('pg_migrator')
|
39
|
+
require 'pg_migrator'
|
40
|
+
PGMigrator.new
|
41
|
+
rescue Gem::LoadError
|
42
|
+
puts "Warning: Could not find 'pg_migrator'"
|
39
43
|
end
|
44
|
+
|
45
|
+
task default: :test
|
data/lib/db.rb
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
# coding: utf-8
|
2
|
-
require 'config'
|
3
2
|
require 'postgres'
|
4
3
|
|
5
4
|
# Database managment
|
@@ -44,7 +43,7 @@ class DB
|
|
44
43
|
def self.databases(config)
|
45
44
|
dbs = []
|
46
45
|
pg = Postgres.new(config, 'postgres')
|
47
|
-
dbs = pg.execute('SELECT * FROM pg_database ORDER BY datname;') if
|
46
|
+
dbs = pg.execute('SELECT * FROM pg_database ORDER BY datname;') if pg.ok?
|
48
47
|
pg.finish
|
49
48
|
dbs
|
50
49
|
end
|
data/lib/pg_migrator.rb
CHANGED
data/pg_migrator.gemspec
CHANGED
data/tasks/config.rake
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
require 'rake'
|
3
|
-
|
4
|
-
|
3
|
+
require_relative '../lib/config.rb'
|
5
4
|
@config = nil
|
6
5
|
|
7
6
|
task :load_config do
|
@@ -31,5 +30,3 @@ task environments: :load_config do
|
|
31
30
|
puts file.split('/')[1]
|
32
31
|
end
|
33
32
|
end
|
34
|
-
|
35
|
-
task default: :config
|
data/tasks/db.rake
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pg_migrator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pierre BAZONNARD
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-07-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|