pg_migrate 0.1.11 → 0.1.12

Sign up to get free protection for your applications and to get access to all the features.
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 -29
  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.11
4
+ version: 0.1.12
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-07-05 00:00:00.000000000 Z
11
+ date: 2014-02-02 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.15.1
33
+ version: 0.17.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.15.1
40
+ version: 0.17.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.2
122
+ rubygems_version: 2.0.3
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