pg_migrate 0.1.7 → 0.1.11

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.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +34 -34
  3. data/.gitmodules +3 -3
  4. data/Gemfile +9 -9
  5. data/Gemfile.lock +39 -39
  6. data/LICENSE +21 -21
  7. data/README.md +33 -33
  8. data/Rakefile +2 -2
  9. data/bin/pg_migrate +6 -6
  10. data/lib/pg_migrate/builder.rb +214 -214
  11. data/lib/pg_migrate/command_line.rb +242 -242
  12. data/lib/pg_migrate/config_parser.rb +48 -48
  13. data/lib/pg_migrate/manifest_reader.rb +102 -102
  14. data/lib/pg_migrate/migration.rb +11 -11
  15. data/lib/pg_migrate/migrator.rb +94 -94
  16. data/lib/pg_migrate/package.rb +152 -152
  17. data/lib/pg_migrate/package_templates/Gemfile.erb +3 -3
  18. data/lib/pg_migrate/package_templates/bin/migrate.rb +9 -9
  19. data/lib/pg_migrate/package_templates/gemspec.erb +21 -21
  20. data/lib/pg_migrate/package_templates/lib/gem/version.rb +3 -3
  21. data/lib/pg_migrate/package_templates/lib/gem.rb +12 -12
  22. data/lib/pg_migrate/props.rb +19 -19
  23. data/lib/pg_migrate/sql_reader.rb +51 -51
  24. data/lib/pg_migrate/templates/bootstrap.erb +175 -175
  25. data/lib/pg_migrate/templates/up.erb +30 -30
  26. data/lib/pg_migrate/util.rb +73 -73
  27. data/lib/pg_migrate/version.rb +3 -3
  28. data/lib/pg_migrate.rb +40 -40
  29. data/pg_migrate.gemspec +29 -28
  30. data/spec/database.yml +8 -8
  31. data/spec/pg_migrate/builder_spec.rb +113 -113
  32. data/spec/pg_migrate/command_line_spec.rb +53 -53
  33. data/spec/pg_migrate/config_parser_spec.rb +18 -18
  34. data/spec/pg_migrate/db_utility.rb +73 -73
  35. data/spec/pg_migrate/input_manifests/single_manifest/manifest +3 -3
  36. data/spec/pg_migrate/input_manifests/single_manifest/up/single1.sql +29 -29
  37. data/spec/pg_migrate/manifest_reader_spec.rb +19 -19
  38. data/spec/pg_migrate/migrator_spec.rb +68 -68
  39. data/spec/pg_migrate/package_spec.rb +38 -38
  40. data/spec/pg_migrate/sql_reader_spec.rb +21 -21
  41. data/spec/spec_helper.rb +15 -15
  42. metadata +5 -5
@@ -1,20 +1,20 @@
1
- require 'spec_helper'
2
-
3
- describe ManifestReader do
4
-
5
- before(:all) do
6
- @manifest_reader = ManifestReader.new
7
- end
8
-
9
- it "load single manifest" do
10
- manifest = @manifest_reader.load_input_manifest("spec/pg_migrate/input_manifests/single_manifest")
11
-
12
- manifest.length.should == 1
13
- manifest[0].name.should == "single1.sql"
14
- end
15
-
16
- it "fail on bad manifest reference" do
17
- expect { @manifest_reader.validate_migration_paths('absolutely_nowhere_real', ["migration1"]) }.to raise_exception
18
- end
19
-
1
+ require 'spec_helper'
2
+
3
+ describe ManifestReader do
4
+
5
+ before(:all) do
6
+ @manifest_reader = ManifestReader.new
7
+ end
8
+
9
+ it "load single manifest" do
10
+ manifest = @manifest_reader.load_input_manifest("spec/pg_migrate/input_manifests/single_manifest")
11
+
12
+ manifest.length.should == 1
13
+ manifest[0].name.should == "single1.sql"
14
+ end
15
+
16
+ it "fail on bad manifest reference" do
17
+ expect { @manifest_reader.validate_migration_paths('absolutely_nowhere_real', ["migration1"]) }.to raise_exception
18
+ end
19
+
20
20
  end
@@ -1,68 +1,68 @@
1
- require 'spec_helper'
2
-
3
- describe Migrator do
4
-
5
- before(:all) do
6
- @manifest_reader = ManifestReader.new
7
- @sql_reader = SqlReader.new
8
- @standard_builder = Builder.new(@manifest_reader, @sql_reader)
9
- @standard_migrator = Migrator.new(@manifest_reader, @sql_reader)
10
- @dbutil = DbUtility.new
11
- end
12
-
13
- it "migrate single_manifest" do
14
-
15
- def migrate_it(output_dir)
16
- @dbutil.connect_test_database do |conn|
17
-
18
- standard_migrator = Migrator.new(@manifest_reader, @sql_reader, :pgconn=>conn)
19
- standard_migrator.migrate(output_dir)
20
-
21
- conn.transaction do |transaction|
22
- transaction.exec("SELECT table_name FROM information_schema.tables WHERE table_name = $1", ["emp"]) do |result|
23
- result.ntuples.should == 1
24
- result.getvalue(0, 0).should == "emp"
25
- end
26
-
27
- pg_migration_id = nil
28
- transaction.exec("SELECT * FROM pgmigrate.pg_migrations") do |result|
29
- result.ntuples.should == 1
30
- result[0]["name"].should == "single1.sql"
31
- result[0]["ordinal"].should == "0"
32
- pg_migration_id = result[0]["pg_migrate_id"]
33
- end
34
- pg_migration_id.should_not == nil
35
-
36
- # verify that a database row in pg_migrate was created as side-effect
37
- transaction.exec("SELECT * FROM pgmigrate.pg_migrate WHERE id = $1", [pg_migration_id]) do |result|
38
- result.ntuples.should == 1
39
- result[0]["template_version"].should == "0.1.0"
40
- result[0]["builder_version"].should == "pg_migrate_ruby-#{PgMigrate::VERSION}"
41
- result[0]["migrator_version"].should == "pg_migrate_ruby-#{PgMigrate::VERSION}"
42
- result[0]["database_version"].should_not be nil
43
- end
44
- end
45
- end
46
- end
47
-
48
- single_manifest=File.expand_path('spec/pg_migrate/input_manifests/single_manifest')
49
- single_manifest = File.join(single_manifest, '.')
50
-
51
- input_dir = nil
52
- target = Files.create :path => "target", :timestamp => false do
53
- input_dir = dir "input_single_manifest", :src => single_manifest do
54
-
55
- end
56
- end
57
-
58
- output_dir = File.join('target', 'output_single_manifest')
59
-
60
- @standard_builder.build(input_dir, output_dir, :force => true)
61
-
62
- @dbutil.create_new_test_database
63
-
64
- migrate_it(output_dir)
65
- migrate_it(output_dir)
66
- end
67
- end
68
-
1
+ require 'spec_helper'
2
+
3
+ describe Migrator do
4
+
5
+ before(:all) do
6
+ @manifest_reader = ManifestReader.new
7
+ @sql_reader = SqlReader.new
8
+ @standard_builder = Builder.new(@manifest_reader, @sql_reader)
9
+ @standard_migrator = Migrator.new(@manifest_reader, @sql_reader)
10
+ @dbutil = DbUtility.new
11
+ end
12
+
13
+ it "migrate single_manifest" do
14
+
15
+ def migrate_it(output_dir)
16
+ @dbutil.connect_test_database do |conn|
17
+
18
+ standard_migrator = Migrator.new(@manifest_reader, @sql_reader, :pgconn=>conn)
19
+ standard_migrator.migrate(output_dir)
20
+
21
+ conn.transaction do |transaction|
22
+ transaction.exec("SELECT table_name FROM information_schema.tables WHERE table_name = $1", ["emp"]) do |result|
23
+ result.ntuples.should == 1
24
+ result.getvalue(0, 0).should == "emp"
25
+ end
26
+
27
+ pg_migration_id = nil
28
+ transaction.exec("SELECT * FROM pgmigrate.pg_migrations") do |result|
29
+ result.ntuples.should == 1
30
+ result[0]["name"].should == "single1.sql"
31
+ result[0]["ordinal"].should == "0"
32
+ pg_migration_id = result[0]["pg_migrate_id"]
33
+ end
34
+ pg_migration_id.should_not == nil
35
+
36
+ # verify that a database row in pg_migrate was created as side-effect
37
+ transaction.exec("SELECT * FROM pgmigrate.pg_migrate WHERE id = $1", [pg_migration_id]) do |result|
38
+ result.ntuples.should == 1
39
+ result[0]["template_version"].should == "0.1.0"
40
+ result[0]["builder_version"].should == "pg_migrate_ruby-#{PgMigrate::VERSION}"
41
+ result[0]["migrator_version"].should == "pg_migrate_ruby-#{PgMigrate::VERSION}"
42
+ result[0]["database_version"].should_not be nil
43
+ end
44
+ end
45
+ end
46
+ end
47
+
48
+ single_manifest=File.expand_path('spec/pg_migrate/input_manifests/single_manifest')
49
+ single_manifest = File.join(single_manifest, '.')
50
+
51
+ input_dir = nil
52
+ target = Files.create :path => "target", :timestamp => false do
53
+ input_dir = dir "input_single_manifest", :src => single_manifest do
54
+
55
+ end
56
+ end
57
+
58
+ output_dir = File.join('target', 'output_single_manifest')
59
+
60
+ @standard_builder.build(input_dir, output_dir, :force => true)
61
+
62
+ @dbutil.create_new_test_database
63
+
64
+ migrate_it(output_dir)
65
+ migrate_it(output_dir)
66
+ end
67
+ end
68
+
@@ -1,38 +1,38 @@
1
- require 'spec_helper'
2
-
3
- describe Package do
4
-
5
- before(:all) do
6
- @manifest_reader = ManifestReader.new
7
- @sql_reader = SqlReader.new
8
- @builder = Builder.new(@manifest_reader, @sql_reader)
9
- @packager = Package.new(@manifest_reader)
10
- @dbutil = DbUtility.new
11
- end
12
-
13
- it "package single migration project" do
14
- single_manifest=File.expand_path('spec/pg_migrate/input_manifests/single_manifest')
15
- single_manifest = File.join(single_manifest, '.')
16
-
17
- input_dir = nil
18
- target = Files.create :path => "target", :timestamp => false do
19
- input_dir = dir "input_single_manifest", :src => single_manifest do
20
-
21
- end
22
- end
23
-
24
- build_output_dir = File.join('target', 'output_single_manifest')
25
- package_output_dir = File.join('target', 'package_single_manifest')
26
-
27
- FileUtils.rm_rf(build_output_dir)
28
-
29
-
30
- # build first
31
- @builder.build(input_dir, build_output_dir)
32
-
33
- # then attempt a package
34
- @packager.package(build_output_dir, package_output_dir, "crazy_gem", "0.0.1")
35
-
36
- end
37
-
38
- end
1
+ require 'spec_helper'
2
+
3
+ describe Package do
4
+
5
+ before(:all) do
6
+ @manifest_reader = ManifestReader.new
7
+ @sql_reader = SqlReader.new
8
+ @builder = Builder.new(@manifest_reader, @sql_reader)
9
+ @packager = Package.new(@manifest_reader)
10
+ @dbutil = DbUtility.new
11
+ end
12
+
13
+ it "package single migration project" do
14
+ single_manifest=File.expand_path('spec/pg_migrate/input_manifests/single_manifest')
15
+ single_manifest = File.join(single_manifest, '.')
16
+
17
+ input_dir = nil
18
+ target = Files.create :path => "target", :timestamp => false do
19
+ input_dir = dir "input_single_manifest", :src => single_manifest do
20
+
21
+ end
22
+ end
23
+
24
+ build_output_dir = File.join('target', 'output_single_manifest')
25
+ package_output_dir = File.join('target', 'package_single_manifest')
26
+
27
+ FileUtils.rm_rf(build_output_dir)
28
+
29
+
30
+ # build first
31
+ @builder.build(input_dir, build_output_dir)
32
+
33
+ # then attempt a package
34
+ @packager.package(build_output_dir, package_output_dir, "crazy_gem", "0.0.1")
35
+
36
+ end
37
+
38
+ end
@@ -1,22 +1,22 @@
1
- require 'spec_helper'
2
-
3
- describe SqlReader do
4
-
5
- before(:all) do
6
- @sql_reader = SqlReader.new
7
- end
8
-
9
- it "load single migration" do
10
- migrations = @sql_reader.load_migration("spec/pg_migrate/input_manifests/single_manifest/up/single1.sql")
11
-
12
- migrations.length.should == 7
13
- migrations[0] = "select 1"
14
- migrations[1] = "select 2"
15
- migrations[2] = "select 3"
16
- migrations[3] = "create table emp()"
17
- migrations[4] = "CREATE FUNCTION clean_emp() RETURNS void AS ' DELETE FROM emp; ' LANGUAGE SQL"
18
- migrations[5] = "CREATE FUNCTION clean_emp2() RETURNS void AS 'DELETE FROM emp;' LANGUAGE SQL"
19
- migrations[6] = "CREATE FUNCTION populate() RETURNS integer AS $$ DECLARE BEGIN PERFORM select 1; END; $$ LANGUAGE plpgsql"
20
- end
21
-
1
+ require 'spec_helper'
2
+
3
+ describe SqlReader do
4
+
5
+ before(:all) do
6
+ @sql_reader = SqlReader.new
7
+ end
8
+
9
+ it "load single migration" do
10
+ migrations = @sql_reader.load_migration("spec/pg_migrate/input_manifests/single_manifest/up/single1.sql")
11
+
12
+ migrations.length.should == 7
13
+ migrations[0] = "select 1"
14
+ migrations[1] = "select 2"
15
+ migrations[2] = "select 3"
16
+ migrations[3] = "create table emp()"
17
+ migrations[4] = "CREATE FUNCTION clean_emp() RETURNS void AS ' DELETE FROM emp; ' LANGUAGE SQL"
18
+ migrations[5] = "CREATE FUNCTION clean_emp2() RETURNS void AS 'DELETE FROM emp;' LANGUAGE SQL"
19
+ migrations[6] = "CREATE FUNCTION populate() RETURNS integer AS $$ DECLARE BEGIN PERFORM select 1; END; $$ LANGUAGE plpgsql"
20
+ end
21
+
22
22
  end
data/spec/spec_helper.rb CHANGED
@@ -1,15 +1,15 @@
1
- require 'logging'
2
-
3
- # bootstrap logger
4
- Logging.logger.root.level = :debug
5
- Logging.logger.root.appenders = Logging.appenders.stdout
6
-
7
- require 'pg_migrate'
8
- require 'pg_migrate/db_utility'
9
- require 'files'
10
- require 'fileutils'
11
-
12
- target = File.join(File.dirname(__FILE__), '..', 'target')
13
- FileUtils::rm_r(target, :force => true)
14
-
15
- include PgMigrate
1
+ require 'logging'
2
+
3
+ # bootstrap logger
4
+ Logging.logger.root.level = :debug
5
+ Logging.logger.root.appenders = Logging.appenders.stdout
6
+
7
+ require 'pg_migrate'
8
+ require 'pg_migrate/db_utility'
9
+ require 'files'
10
+ require 'fileutils'
11
+
12
+ target = File.join(File.dirname(__FILE__), '..', 'target')
13
+ FileUtils::rm_r(target, :force => true)
14
+
15
+ include PgMigrate
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pg_migrate
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.7
4
+ version: 0.1.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Seth Call
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-05-06 00:00:00.000000000 Z
11
+ date: 2013-07-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: logging
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - '='
32
32
  - !ruby/object:Gem::Version
33
- version: 0.14.0
33
+ version: 0.15.1
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - '='
39
39
  - !ruby/object:Gem::Version
40
- version: 0.14.0
40
+ version: 0.15.1
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: thor
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -119,7 +119,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
119
119
  version: '0'
120
120
  requirements: []
121
121
  rubyforge_project:
122
- rubygems_version: 2.0.0
122
+ rubygems_version: 2.0.2
123
123
  signing_key:
124
124
  specification_version: 4
125
125
  summary: Create migration scripts in raw SQL that work regardless if they are run