strong_migrations 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +17 -0
- data/README.md +9 -1
- data/lib/strong_migrations.rb +1 -0
- data/lib/strong_migrations/migration.rb +1 -1
- data/lib/strong_migrations/railtie.rb +10 -0
- data/lib/strong_migrations/version.rb +1 -1
- data/lib/tasks/strong_migrations.rake +11 -0
- metadata +6 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bb8e5f835e883f2053abe736e2cf1f86547cb78f
|
4
|
+
data.tar.gz: d4488980ee75f4297fdc6bf0d22e0595debe0c48
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 57b28bb5f980754035971fc2918d75c24e4778d7ebf8532989f3dc2a17fe5b0447388d8007bd8822713fa0bf901b33b508a3aa89c5dc718d79b78df8d1c76f60
|
7
|
+
data.tar.gz: 41f2e2e734cf6331cdabc3270d07b890a73ed323a9007e644dfa7c9124451aff656ab77d3a97cc352c8033dfb0fd61a65d6a6720f40f370968a9e8435ceb644d
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
## 0.1.3
|
2
|
+
|
3
|
+
- Disabled dangerous rake tasks in production
|
4
|
+
- Added ability to use `SAFETY_ASSURED` env var
|
5
|
+
|
6
|
+
## 0.1.2
|
7
|
+
|
8
|
+
- Skip checks on down migrations and rollbacks
|
9
|
+
- Added check for indexes with more than 3 columns
|
10
|
+
|
11
|
+
## 0.1.1
|
12
|
+
|
13
|
+
- Fixed `add_index` check for MySQL
|
14
|
+
|
15
|
+
## 0.1.0
|
16
|
+
|
17
|
+
- First release
|
data/README.md
CHANGED
@@ -31,7 +31,7 @@ For more info, check out:
|
|
31
31
|
|
32
32
|
Also checks for best practices:
|
33
33
|
|
34
|
-
- keeping indexes
|
34
|
+
- keeping indexes to three columns or less
|
35
35
|
|
36
36
|
## The Zero Downtime Way
|
37
37
|
|
@@ -135,6 +135,14 @@ class MySafeMigration < ActiveRecord::Migration
|
|
135
135
|
end
|
136
136
|
```
|
137
137
|
|
138
|
+
## Production
|
139
|
+
|
140
|
+
Dangerous rake tasks are disabled in production - `db:drop`, `db:reset`, `db:schema:load`, and `db:structure:load`. To get around this, use:
|
141
|
+
|
142
|
+
```sh
|
143
|
+
SAFETY_ASSURED=1 rake db:drop
|
144
|
+
```
|
145
|
+
|
138
146
|
## Credits
|
139
147
|
|
140
148
|
Thanks to Bob Remeika and David Waller for the [original code](https://github.com/foobarfighter/safe-migrations).
|
data/lib/strong_migrations.rb
CHANGED
@@ -2,5 +2,6 @@ require "active_record"
|
|
2
2
|
require "strong_migrations/version"
|
3
3
|
require "strong_migrations/unsafe_migration"
|
4
4
|
require "strong_migrations/migration"
|
5
|
+
require "strong_migrations/railtie" if defined?(Rails)
|
5
6
|
|
6
7
|
ActiveRecord::Migration.send(:prepend, StrongMigrations::Migration)
|
@@ -14,7 +14,7 @@ module StrongMigrations
|
|
14
14
|
end
|
15
15
|
|
16
16
|
def method_missing(method, *args, &block)
|
17
|
-
unless @safe || is_a?(ActiveRecord::Schema) || @direction == :down
|
17
|
+
unless @safe || ENV["SAFETY_ASSURED"] || is_a?(ActiveRecord::Schema) || @direction == :down
|
18
18
|
case method
|
19
19
|
when :remove_column
|
20
20
|
raise_error :remove_column
|
@@ -0,0 +1,11 @@
|
|
1
|
+
# http://nithinbekal.com/posts/safe-rake-tasks
|
2
|
+
|
3
|
+
namespace :strong_migrations do
|
4
|
+
task safety_assured: :environment do
|
5
|
+
raise "Set SAFETY_ASSURED=1 to run this task in production" if Rails.env.production? && !ENV["SAFETY_ASSURED"]
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
["db:drop", "db:reset", "db:schema:load", "db:structure:load"].each do |t|
|
10
|
+
Rake::Task[t].enhance ["strong_migrations:safety_assured"]
|
11
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: strong_migrations
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bob Remeika
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: exe
|
12
12
|
cert_chain: []
|
13
|
-
date: 2016-
|
13
|
+
date: 2016-03-12 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: activerecord
|
@@ -92,14 +92,17 @@ extra_rdoc_files: []
|
|
92
92
|
files:
|
93
93
|
- ".gitignore"
|
94
94
|
- ".travis.yml"
|
95
|
+
- CHANGELOG.md
|
95
96
|
- Gemfile
|
96
97
|
- LICENSE.txt
|
97
98
|
- README.md
|
98
99
|
- Rakefile
|
99
100
|
- lib/strong_migrations.rb
|
100
101
|
- lib/strong_migrations/migration.rb
|
102
|
+
- lib/strong_migrations/railtie.rb
|
101
103
|
- lib/strong_migrations/unsafe_migration.rb
|
102
104
|
- lib/strong_migrations/version.rb
|
105
|
+
- lib/tasks/strong_migrations.rake
|
103
106
|
- strong_migrations.gemspec
|
104
107
|
homepage: https://github.com/ankane/strong_migrations
|
105
108
|
licenses: []
|
@@ -120,7 +123,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
120
123
|
version: '0'
|
121
124
|
requirements: []
|
122
125
|
rubyforge_project:
|
123
|
-
rubygems_version: 2.
|
126
|
+
rubygems_version: 2.6.1
|
124
127
|
signing_key:
|
125
128
|
specification_version: 4
|
126
129
|
summary: Catch unsafe migrations at dev time
|