standalone_migrations 1.0.13 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -1,7 +1,8 @@
1
1
  source :rubygems
2
2
 
3
3
  gem 'rake'
4
- gem 'activerecord', ENV['AR'] || '>=3'
4
+ gem 'activerecord', ENV['AR'] || '~>3.2.6'
5
+ gem 'railties', ENV['AR'] || '~>3.2.6'
5
6
 
6
7
  group :dev do
7
8
  gem 'sqlite3'
data/Gemfile.lock CHANGED
@@ -1,28 +1,58 @@
1
1
  GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
- activemodel (3.1.1)
5
- activesupport (= 3.1.1)
4
+ actionpack (3.2.8)
5
+ activemodel (= 3.2.8)
6
+ activesupport (= 3.2.8)
6
7
  builder (~> 3.0.0)
7
- i18n (~> 0.6)
8
- activerecord (3.1.1)
9
- activemodel (= 3.1.1)
10
- activesupport (= 3.1.1)
11
- arel (~> 2.2.1)
8
+ erubis (~> 2.7.0)
9
+ journey (~> 1.0.4)
10
+ rack (~> 1.4.0)
11
+ rack-cache (~> 1.2)
12
+ rack-test (~> 0.6.1)
13
+ sprockets (~> 2.1.3)
14
+ activemodel (3.2.8)
15
+ activesupport (= 3.2.8)
16
+ builder (~> 3.0.0)
17
+ activerecord (3.2.8)
18
+ activemodel (= 3.2.8)
19
+ activesupport (= 3.2.8)
20
+ arel (~> 3.0.2)
12
21
  tzinfo (~> 0.3.29)
13
- activesupport (3.1.1)
22
+ activesupport (3.2.8)
23
+ i18n (~> 0.6)
14
24
  multi_json (~> 1.0)
15
- arel (2.2.1)
16
- builder (3.0.0)
25
+ arel (3.0.2)
26
+ builder (3.0.3)
17
27
  diff-lcs (1.1.3)
28
+ erubis (2.7.0)
18
29
  git (1.2.5)
19
- i18n (0.6.0)
30
+ hike (1.2.1)
31
+ i18n (0.6.1)
20
32
  jeweler (1.6.4)
21
33
  bundler (~> 1.0)
22
34
  git (>= 1.2.5)
23
35
  rake
24
- multi_json (1.0.3)
36
+ journey (1.0.4)
37
+ json (1.7.5)
38
+ multi_json (1.3.6)
39
+ rack (1.4.1)
40
+ rack-cache (1.2)
41
+ rack (>= 0.4)
42
+ rack-ssl (1.3.2)
43
+ rack
44
+ rack-test (0.6.1)
45
+ rack (>= 1.0)
46
+ railties (3.2.8)
47
+ actionpack (= 3.2.8)
48
+ activesupport (= 3.2.8)
49
+ rack-ssl (~> 1.3.2)
50
+ rake (>= 0.8.7)
51
+ rdoc (~> 3.4)
52
+ thor (>= 0.14.6, < 2.0)
25
53
  rake (0.9.2.2)
54
+ rdoc (3.12)
55
+ json (~> 1.4)
26
56
  rspec (2.7.0)
27
57
  rspec-core (~> 2.7.0)
28
58
  rspec-expectations (~> 2.7.0)
@@ -31,15 +61,22 @@ GEM
31
61
  rspec-expectations (2.7.0)
32
62
  diff-lcs (~> 1.1.2)
33
63
  rspec-mocks (2.7.0)
34
- sqlite3 (1.3.4)
35
- tzinfo (0.3.31)
64
+ sprockets (2.1.3)
65
+ hike (~> 1.2)
66
+ rack (~> 1.0)
67
+ tilt (~> 1.1, != 1.3.0)
68
+ sqlite3 (1.3.6)
69
+ thor (0.16.0)
70
+ tilt (1.3.3)
71
+ tzinfo (0.3.33)
36
72
 
37
73
  PLATFORMS
38
74
  ruby
39
75
 
40
76
  DEPENDENCIES
41
- activerecord (>= 3)
77
+ activerecord (~> 3.2.6)
42
78
  jeweler
79
+ railties (~> 3.2.6)
43
80
  rake
44
81
  rspec (~> 2)
45
82
  sqlite3
data/README.markdown CHANGED
@@ -2,7 +2,7 @@ Rails migrations in non-Rails (and non Ruby) projects.
2
2
 
3
3
  WHAT'S NEW
4
4
  ==========
5
- In the 1.0.x release we have moved to using Rails 3 migrations instead of maintaining our own migration related code. Just about anything you can do with Rails 3 migrations you can now do with [Standalone Migrations](https://github.com/thuss/standalone-migrations) too! This removed 95% of the code we have to maintain. Big thanks to [Michael Grosser](http://pragmatig.wordpress.com) for undertaking this major rewrite!
5
+ In the 2.x release we have moved to using Rails 3 migrations instead of maintaining our own migration related code. Just about anything you can do with Rails 3 migrations you can now do with [Standalone Migrations](https://github.com/thuss/standalone-migrations) too! This removed 95% of the code we have to maintain. Big thanks to [Ricardo Valeriano](http://ricardovaleriano.com/) and [Michael Grosser](http://pragmatig.wordpress.com) for undertaking this major rewrite!
6
6
 
7
7
  CONTRIBUTE
8
8
  ==========
@@ -185,16 +185,17 @@ migration.
185
185
  Contributors
186
186
  ============
187
187
  - [Todd Huss](http://gabrito.com/)
188
- - [Two Bit Labs](http://twobitlabs.com/)
189
- - [Class Monkeys](http://www.classmonkeys.com/)
190
188
  - [Michael Grosser](http://pragmatig.wordpress.com)
189
+ - [Ricardo Valeriano](http://ricardovaleriano.com/)
190
+ - [Two Bit Labs](http://twobitlabs.com/)
191
+ - [ClassMonkeys](http://www.classmonkeys.com/)
192
+ - [Windandtides](http://windandtides.com/)
191
193
  - [Eric Lindvall](http://bitmonkey.net)
192
194
  - [Steve Hodgkiss](http://stevehodgkiss.com/)
193
195
  - [Rich Meyers](https://github.com/richmeyers)
194
196
  - [Wes Bailey](http://exposinggotchas.blogspot.com/)
195
197
  - [Robert J. Berger](http://blog.ibd.com/)
196
198
  - [Federico Builes](http://mheroin.com/)
197
- - [Ricardo Valeriano](http://ricardovaleriano.com/)
198
199
  - [Gazler](http://blog.gazler.com/)
199
200
  - [Yuu Yamashita](https://github.com/yyuu)
200
201
  - [Koen Punt](http://www.koen.pt/)
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.13
1
+ 2.0.0
@@ -0,0 +1,5 @@
1
+ *.sqlite3
2
+ Gemfile
3
+ .bundle/
4
+ bin/
5
+ Gemfile.lock
data/example/Rakefile ADDED
@@ -0,0 +1,9 @@
1
+ # $LOAD_PATH handling not need if the standalone_migrations
2
+ # gem is installed
3
+ lib = File.expand_path("../../lib", __FILE__)
4
+ $:.unshift lib unless $:.include?(lib)
5
+
6
+ require "standalone_migrations"
7
+ StandaloneMigrations::Tasks.load_tasks
8
+
9
+ # and that's it!
@@ -0,0 +1,15 @@
1
+ development:
2
+ adapter: sqlite3
3
+ database: db/development.sqlite3
4
+ pool: 5
5
+ timeout: 5000
6
+ test:
7
+ adapter: sqlite3
8
+ database: db/test.sqlite3
9
+ pool: 5
10
+ timeout: 5000
11
+ production:
12
+ adapter: sqlite3
13
+ database: db/production.sqlite3
14
+ pool: 5
15
+ timeout: 5000
@@ -0,0 +1,7 @@
1
+ class CreateTableAwesomeMigration < ActiveRecord::Migration
2
+ def up
3
+ end
4
+
5
+ def down
6
+ end
7
+ end
@@ -0,0 +1,19 @@
1
+ lib_path = File.expand_path("../", __FILE__)
2
+ $:.unshift lib_path unless $:.include?(lib_path)
3
+
4
+ require "rubygems"
5
+ require "rails"
6
+ require "active_record"
7
+
8
+ require "standalone_migrations/configurator"
9
+ require "standalone_migrations/generator"
10
+
11
+ railtie_app_path = "#{lib_path}/standalone_migrations/minimal_railtie_config"
12
+ APP_PATH = File.expand_path(railtie_app_path, __FILE__)
13
+
14
+ require "standalone_migrations/minimal_railtie_config"
15
+ require "standalone_migrations/tasks"
16
+
17
+ if !ENV["RAILS_ENV"]
18
+ ENV["RAILS_ENV"] = ENV["DB"] || ENV["RACK_ENV"] || Rails.env || "development"
19
+ end
@@ -24,7 +24,7 @@ module StandaloneMigrations
24
24
  end
25
25
 
26
26
  def self.environments_config
27
- proxy = InternalConfigurationsProxy.new(load_configurations)
27
+ proxy = InternalConfigurationsProxy.new(load_configurations)
28
28
  yield(proxy) if block_given?
29
29
  end
30
30
 
@@ -0,0 +1,11 @@
1
+ # these generators are backed by rails' generators
2
+ require "rails/generators"
3
+ module StandaloneMigrations
4
+ class Generator
5
+ def self.migration(name, options="")
6
+ generator_params = [name] + options.split(" ")
7
+ Rails::Generators.invoke "active_record:migration", generator_params,
8
+ destination_root: Rails.root
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,10 @@
1
+ module StandaloneMigrations
2
+ class StandaloneMigrations::MinimalRailtieConfig < Rails::Application
3
+ config.generators.options[:rails] = {orm: :active_record}
4
+
5
+ config.generators.options[:active_record] = {
6
+ migration: true,
7
+ timestamps: true
8
+ }
9
+ end
10
+ end
@@ -0,0 +1,34 @@
1
+ module StandaloneMigrations
2
+ class Tasks
3
+ class << self
4
+ def configure
5
+ Deprecations.new.call
6
+ config_database_file = Configurator.new.config
7
+ paths = Rails.application.config.paths
8
+ paths.add "config/database", :with => config_database_file
9
+ end
10
+
11
+ def load_tasks
12
+ configure
13
+
14
+ MinimalRailtieConfig.load_tasks
15
+ %w(
16
+ connection
17
+ environment
18
+ db/new_migration
19
+ ).each do
20
+ |task| load "standalone_migrations/tasks/#{task}.rake"
21
+ end
22
+ load "active_record/railties/databases.rake"
23
+ end
24
+ end
25
+ end
26
+
27
+ class Tasks::Deprecations
28
+ def call
29
+ if File.directory?('db/migrations')
30
+ puts "DEPRECATED move your migrations into db/migrate"
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,7 @@
1
+ require File.expand_path("../../../standalone_migrations", __FILE__)
2
+ namespace :standalone do
3
+ task :connection do
4
+ configurator = StandaloneMigrations::Configurator.new
5
+ ActiveRecord::Base.establish_connection configurator.config_for(Rails.env)
6
+ end
7
+ end
@@ -0,0 +1,10 @@
1
+ namespace :db do
2
+ task :new_migration do |t|
3
+ unless name = ENV['name']
4
+ puts "Error: must provide name of migration to generate."
5
+ puts "For example: rake #{t.name} name=add_field_to_form"
6
+ abort
7
+ end
8
+ StandaloneMigrations::Generator.migration name
9
+ end
10
+ end
@@ -0,0 +1,3 @@
1
+ require File.expand_path("../../../standalone_migrations", __FILE__)
2
+ task environment: ["standalone:connection"] do
3
+ end
@@ -1,111 +1,10 @@
1
- require 'active_support/all'
2
- require 'active_record'
3
- require 'pathname'
4
- require 'standalone_migrations/configurator'
5
-
6
- # earlier versions used migrations from db/migrations, so warn users about the change
7
- if File.directory?('db/migrations')
8
- puts "DEPRECATED move your migrations into db/migrate"
9
- end
10
-
11
- def standalone_configurator
12
- @configurator ||= StandaloneMigrations::Configurator.new
13
- end
14
-
15
- module Rails
16
- def self.env
17
- s = (ENV['RAILS_ENV'] || ENV['RACK_ENV'] || ENV['DB'] || 'development').dup # env is frozen -> dup
18
- def s.development?; self == 'development';end
19
- s
20
- end
21
-
22
- def self.root
23
- Pathname.new Dir.pwd
24
- end
25
-
26
- def self.application
27
- s = "fake_app"
28
-
29
- def s.paths
30
- {
31
- "db/migrate" => [standalone_configurator.migrate_dir],
32
- "db/seeds.rb" => [standalone_configurator.seeds],
33
- "db/schema.rb" => [standalone_configurator.schema]
34
- }
35
- end
36
-
37
- def s.config
38
- s = "fake_config"
39
- def s.database_configuration
40
- standalone_configurator.config_for_all
41
- end
42
- s
43
- end
44
-
45
- def s.load_seed
46
- seed_file = paths["db/seeds.rb"].select{ |f| File.exists?(f) }.first
47
- load(seed_file) if seed_file
48
- end
49
-
50
- def s.eager_load!
51
- end
52
-
53
- s
54
- end
55
-
56
- end
57
-
58
- task(:rails_env){}
59
-
60
- task(:environment => "db:load_config") do
61
- ActiveRecord::Base.establish_connection standalone_configurator.config_for Rails.env
62
- end
63
-
64
- load 'active_record/railties/databases.rake'
65
-
66
- namespace :db do
67
- task :load_config do
68
- ActiveRecord::Base.configurations = standalone_configurator.config_for_all
69
- end
70
-
71
- desc "Create a new migration"
72
- task :new_migration do |t|
73
- unless migration = ENV['name']
74
- puts "Error: must provide name of migration to generate."
75
- puts "For example: rake #{t.name} name=add_field_to_form"
76
- abort
77
- end
78
-
79
- file_contents = <<eof
80
- class #{class_name migration} < ActiveRecord::Migration
81
- def up
82
- end
83
-
84
- def down
85
- raise ActiveRecord::IrreversibleMigration
86
- end
87
- end
88
- eof
89
- filename = migration.underscore
90
- create_file file_name(filename), file_contents
91
- puts "Created migration #{file_name filename}"
92
- end
93
-
94
- def configurator
95
- standalone_configurator
96
- end
97
-
98
- def create_file file, contents
99
- path = File.dirname(file)
100
- FileUtils.mkdir_p path unless File.exists? path
101
- File.open(file, 'w') { |f| f.write contents }
102
- end
103
-
104
- def file_name migration
105
- File.join configurator.migrate_dir, "#{Time.now.utc.strftime '%Y%m%d%H%M%S'}_#{migration}.rb"
106
- end
107
-
108
- def class_name str
109
- str.underscore.camelize
110
- end
111
- end
1
+ # I really think we should deprecate this file, seems to me that is
2
+ # more explicit if the user require "standalone_migrations" and then
3
+ # call the load_tasks methods in his Rakefile. But this only a
4
+ # suggestion, and we can get rid of this comment if others on the
5
+ # project don't agree with that
6
+ #
7
+ # Ricardo Valeriano
8
+
9
+ require File.expand_path("../../standalone_migrations", __FILE__)
10
+ StandaloneMigrations::Tasks.load_tasks
@@ -1,4 +1,5 @@
1
1
  describe 'Standalone migrations' do
2
+
2
3
  def write(file, content)
3
4
  raise "cannot write nil" unless file
4
5
  file = tmp_file(file)
@@ -40,7 +41,8 @@ describe 'Standalone migrations' do
40
41
  write 'Rakefile', <<-TXT
41
42
  $LOAD_PATH.unshift '#{File.expand_path('lib')}'
42
43
  begin
43
- require 'tasks/standalone_migrations'
44
+ require "standalone_migrations"
45
+ StandaloneMigrations::Tasks.load_tasks
44
46
  rescue LoadError => e
45
47
  puts "gem install standalone_migrations to get db:migrate:* tasks! (Error: \#{e})"
46
48
  end
@@ -87,6 +89,10 @@ test:
87
89
  TXT
88
90
  end
89
91
 
92
+ after(:all) do
93
+ `rm -rf spec/tmp` if File.exist?('spec/tmp')
94
+ end
95
+
90
96
  it "warns of deprecated folder structure" do
91
97
  warning = /DEPRECATED.* db\/migrate/
92
98
  run("rake db:create").should_not =~ warning
@@ -107,12 +113,12 @@ test:
107
113
  end
108
114
 
109
115
  it "generates a new migration with this name and timestamp" do
110
- run("rake db:new_migration name=test_abc").should =~ %r{Created migration db/migrate/\d+_test_abc\.rb}
116
+ run("rake db:new_migration name=test_abc").should =~ %r{create(.*)db/migrate/\d+_test_abc\.rb}
111
117
  run("ls db/migrate").should =~ /^\d+_test_abc.rb$/
112
118
  end
113
119
 
114
120
  it "generates a new migration with the name converted to the Rails migration format" do
115
- run("rake db:new_migration name=MyNiceModel").should =~ %r{Created migration db/migrate/\d+_my_nice_model\.rb}
121
+ run("rake db:new_migration name=MyNiceModel").should =~ %r{create(.*)db/migrate/\d+_my_nice_model\.rb}
116
122
  read(migration('my_nice_model')).should =~ /class MyNiceModel/
117
123
  run("ls db/migrate").should =~ /^\d+_my_nice_model.rb$/
118
124
  end
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "standalone_migrations"
8
- s.version = "1.0.13"
8
+ s.version = "2.0.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Todd Huss", "Michael Grosser"]
12
- s.date = "2012-09-26"
12
+ s.date = "2012-10-01"
13
13
  s.email = "thuss@gabrito.com"
14
14
  s.extra_rdoc_files = [
15
15
  "README.markdown"
@@ -21,7 +21,18 @@ Gem::Specification.new do |s|
21
21
  "README.markdown",
22
22
  "Rakefile",
23
23
  "VERSION",
24
+ "example/.gitignore",
25
+ "example/Rakefile",
26
+ "example/db/config.yml",
27
+ "example/db/migrate/20120930053225_create_table_awesome_migration.rb",
28
+ "lib/standalone_migrations.rb",
24
29
  "lib/standalone_migrations/configurator.rb",
30
+ "lib/standalone_migrations/generator.rb",
31
+ "lib/standalone_migrations/minimal_railtie_config.rb",
32
+ "lib/standalone_migrations/tasks.rb",
33
+ "lib/standalone_migrations/tasks/connection.rake",
34
+ "lib/standalone_migrations/tasks/db/new_migration.rake",
35
+ "lib/standalone_migrations/tasks/environment.rake",
25
36
  "lib/tasks/standalone_migrations.rb",
26
37
  "spec/spec_helper.rb",
27
38
  "spec/standalone_migrations/configurator_spec.rb",
@@ -42,14 +53,17 @@ Gem::Specification.new do |s|
42
53
 
43
54
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
44
55
  s.add_runtime_dependency(%q<rake>, [">= 0"])
45
- s.add_runtime_dependency(%q<activerecord>, [">= 3"])
56
+ s.add_runtime_dependency(%q<activerecord>, ["~> 3.2.6"])
57
+ s.add_runtime_dependency(%q<railties>, ["~> 3.2.6"])
46
58
  else
47
59
  s.add_dependency(%q<rake>, [">= 0"])
48
- s.add_dependency(%q<activerecord>, [">= 3"])
60
+ s.add_dependency(%q<activerecord>, ["~> 3.2.6"])
61
+ s.add_dependency(%q<railties>, ["~> 3.2.6"])
49
62
  end
50
63
  else
51
64
  s.add_dependency(%q<rake>, [">= 0"])
52
- s.add_dependency(%q<activerecord>, [">= 3"])
65
+ s.add_dependency(%q<activerecord>, ["~> 3.2.6"])
66
+ s.add_dependency(%q<railties>, ["~> 3.2.6"])
53
67
  end
54
68
  end
55
69
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: standalone_migrations
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.13
4
+ version: 2.0.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-09-26 00:00:00.000000000 Z
13
+ date: 2012-10-01 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rake
@@ -33,17 +33,33 @@ dependencies:
33
33
  requirement: !ruby/object:Gem::Requirement
34
34
  none: false
35
35
  requirements:
36
- - - ! '>='
36
+ - - ~>
37
37
  - !ruby/object:Gem::Version
38
- version: '3'
38
+ version: 3.2.6
39
39
  type: :runtime
40
40
  prerelease: false
41
41
  version_requirements: !ruby/object:Gem::Requirement
42
42
  none: false
43
43
  requirements:
44
- - - ! '>='
44
+ - - ~>
45
+ - !ruby/object:Gem::Version
46
+ version: 3.2.6
47
+ - !ruby/object:Gem::Dependency
48
+ name: railties
49
+ requirement: !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: 3.2.6
55
+ type: :runtime
56
+ prerelease: false
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ~>
45
61
  - !ruby/object:Gem::Version
46
- version: '3'
62
+ version: 3.2.6
47
63
  description:
48
64
  email: thuss@gabrito.com
49
65
  executables: []
@@ -57,7 +73,18 @@ files:
57
73
  - README.markdown
58
74
  - Rakefile
59
75
  - VERSION
76
+ - example/.gitignore
77
+ - example/Rakefile
78
+ - example/db/config.yml
79
+ - example/db/migrate/20120930053225_create_table_awesome_migration.rb
80
+ - lib/standalone_migrations.rb
60
81
  - lib/standalone_migrations/configurator.rb
82
+ - lib/standalone_migrations/generator.rb
83
+ - lib/standalone_migrations/minimal_railtie_config.rb
84
+ - lib/standalone_migrations/tasks.rb
85
+ - lib/standalone_migrations/tasks/connection.rake
86
+ - lib/standalone_migrations/tasks/db/new_migration.rake
87
+ - lib/standalone_migrations/tasks/environment.rake
61
88
  - lib/tasks/standalone_migrations.rb
62
89
  - spec/spec_helper.rb
63
90
  - spec/standalone_migrations/configurator_spec.rb
@@ -81,7 +108,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
81
108
  version: '0'
82
109
  segments:
83
110
  - 0
84
- hash: 3401674139908695139
111
+ hash: -1535312621073270014
85
112
  required_rubygems_version: !ruby/object:Gem::Requirement
86
113
  none: false
87
114
  requirements: