bard-rake 0.17.1 → 0.18.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e114b3a0d74d944d1c83ac6ed46bcededdb4336008a90fc45bd5e4cf372ea30d
4
- data.tar.gz: a7a5092c2b71551d63c7d205e5a4f3c56fa60c40259f50f1bf169c8196443639
3
+ metadata.gz: 34aae94c85aac3dd082d1ca5a0d67d6647b6c8716fc75d1854634e4039134f1e
4
+ data.tar.gz: cb7d590fe36fce04d3220b57454dfffd43cd79d6e88e9e70ffcbbf927645d696
5
5
  SHA512:
6
- metadata.gz: 69481f42f44ec689380825253acb5a954ea1aadef5f830b380a3b717ff66844acbc022df97ef4cfc5c0635adb70f39bc532ea8651e1dec6d2227f93e3401e1e1
7
- data.tar.gz: 392e5dae59cd5c730b6376331912e10fc8187eb3985836ec5f96df21ea81cfa56e66433e32fceee266585d89506d8fe6d665794ee8445d10c6d51784d5cf7388
6
+ metadata.gz: f7de2c724d68c1b6bdee29fd716b4b28426a0cb89fd818706192d0e4555284451cdff046e91c55ff3586a9fe4033de5f7aea69ba2b2bae10f14e12c649d05ef2
7
+ data.tar.gz: 000675fc9c72e2490bba5fe7367feb89369f6b339378823ef75709482357525b0024a9a3b59bfc4dae733935c0387fefa6780bb9f4b0d78c47f6b74bef4e2c9a
data/bard-rake.gemspec CHANGED
@@ -19,8 +19,9 @@ Gem::Specification.new do |spec|
19
19
 
20
20
  spec.add_dependency "rake"
21
21
  spec.add_dependency "backhoe"
22
+ spec.add_dependency "railties"
22
23
 
23
- spec.add_development_dependency "bundler", "~> 1.3"
24
+ spec.add_development_dependency "bundler"
24
25
  spec.add_development_dependency(%q<rspec>, [">= 1.2.9"])
25
26
  end
26
27
 
@@ -63,12 +63,8 @@ if defined?(ActiveRecord)
63
63
  next unless whitelist.include?(env)
64
64
  next if modified_databases.include?(database)
65
65
 
66
- if local_database?(configuration)
67
- ActiveRecord::Base.establish_connection configuration
68
- block.call configuration, env
69
- else
70
- $stderr.puts "This task only modifies local databases. #{database} is on a remote host."
71
- end
66
+ ActiveRecord::Base.establish_connection configuration
67
+ block.call configuration, env
72
68
 
73
69
  modified_databases << database
74
70
  end
@@ -76,10 +72,6 @@ if defined?(ActiveRecord)
76
72
  Rake::Task["db:_dump"].invoke
77
73
  end
78
74
 
79
- def local_database?(configuration)
80
- configuration["host"].blank? || LOCAL_HOSTS.include?(configuration["host"])
81
- end
82
-
83
75
  def test_environment?
84
76
  rails_env == "test"
85
77
  end
@@ -1,6 +1,6 @@
1
1
  module Bard
2
2
  module Rake
3
- VERSION = "0.17.1"
3
+ VERSION = "0.18.1"
4
4
  end
5
5
  end
6
6
 
@@ -0,0 +1,40 @@
1
+ class <%= migration_class_name %> < ActiveRecord::Migration[<%= ActiveRecord::Migration.current_version %>]
2
+ def up
3
+ execute "ALTER DATABASE `#{db.current_database}` CHARACTER SET #{charset} COLLATE #{collation};"
4
+ db.tables.each do |table|
5
+ execute "ALTER TABLE `#{table}` ROW_FORMAT=DYNAMIC CHARACTER SET #{charset} COLLATE #{collation};"
6
+
7
+ db.columns(table).each do |column|
8
+ case column.sql_type
9
+ when /([a-z]*)text/i
10
+ default = (column.default.blank?) ? '' : "DEFAULT '#{column.default}'"
11
+ null = (column.null) ? '' : 'NOT NULL'
12
+ execute "ALTER TABLE `#{table}` MODIFY `#{column.name}` #{column.sql_type.upcase} CHARACTER SET #{charset} COLLATE #{collation} #{default} #{null};"
13
+ when /varchar\(([0-9]+)\)/i
14
+ sql_type = column.sql_type.upcase
15
+ default = (column.default.blank?) ? '' : "DEFAULT '#{column.default}'"
16
+ null = (column.null) ? '' : 'NOT NULL'
17
+ execute "ALTER TABLE `#{table}` MODIFY `#{column.name}` #{sql_type} CHARACTER SET #{charset} COLLATE #{collation} #{default} #{null};"
18
+ end
19
+ end
20
+ end
21
+ end
22
+
23
+ def down
24
+ end
25
+
26
+ private
27
+
28
+ def charset
29
+ "utf8mb4"
30
+ end
31
+
32
+ def collation
33
+ "utf8mb4_unicode_ci"
34
+ end
35
+
36
+ def db
37
+ ActiveRecord::Base.connection
38
+ end
39
+ end
40
+
@@ -0,0 +1,25 @@
1
+ require "rails/generators"
2
+
3
+ module Bard
4
+ class Utf8mb4MigrationGenerator < Rails::Generators::Base
5
+ include Rails::Generators::Migration
6
+
7
+ source_root File.expand_path("templates", __dir__)
8
+
9
+ def self.next_migration_number(dirname)
10
+ next_migration_number = current_migration_number(dirname) + 1
11
+ ActiveRecord::Migration.next_migration_number(next_migration_number)
12
+ end
13
+
14
+ def install_migration
15
+ migration_template "migration.rb", "db/migrate/convert_to_utf8mb4.rb"
16
+ end
17
+
18
+ def specify_charset_and_collation_in_database_yml
19
+ ["config/database.yml", "config/database.sample.yml"].each do |file|
20
+ inject_into_file file, " charset: utf8mb4\n", after: " socket: /var/run/mysqld/mysqld.sock\n"
21
+ end
22
+ end
23
+ end
24
+ end
25
+
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bard-rake
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.17.1
4
+ version: 0.18.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Micah Geisel
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-11-03 00:00:00.000000000 Z
11
+ date: 2021-11-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -38,20 +38,34 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: railties
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: bundler
43
57
  requirement: !ruby/object:Gem::Requirement
44
58
  requirements:
45
- - - "~>"
59
+ - - ">="
46
60
  - !ruby/object:Gem::Version
47
- version: '1.3'
61
+ version: '0'
48
62
  type: :development
49
63
  prerelease: false
50
64
  version_requirements: !ruby/object:Gem::Requirement
51
65
  requirements:
52
- - - "~>"
66
+ - - ">="
53
67
  - !ruby/object:Gem::Version
54
- version: '1.3'
68
+ version: '0'
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: rspec
57
71
  requirement: !ruby/object:Gem::Requirement
@@ -93,6 +107,8 @@ files:
93
107
  - lib/bard/rake/railtie.rb
94
108
  - lib/bard/rake/testing.rb
95
109
  - lib/bard/rake/version.rb
110
+ - lib/generators/bard/utf8mb4_migration/templates/migration.rb.tt
111
+ - lib/generators/bard/utf8mb4_migration/utf8mb4_migration_generator.rb
96
112
  homepage: http://github.com/botandrose/bard-rake
97
113
  licenses:
98
114
  - MIT
@@ -112,7 +128,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
112
128
  - !ruby/object:Gem::Version
113
129
  version: '0'
114
130
  requirements: []
115
- rubygems_version: 3.0.3
131
+ rubygems_version: 3.0.8
116
132
  signing_key:
117
133
  specification_version: 4
118
134
  summary: Rake tasks for all bard projects.