railties 5.2.4.1 → 6.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +303 -132
- data/MIT-LICENSE +1 -1
- data/RDOC_MAIN.rdoc +38 -31
- data/README.rdoc +2 -2
- data/lib/minitest/rails_plugin.rb +7 -11
- data/lib/rails.rb +5 -0
- data/lib/rails/all.rb +4 -0
- data/lib/rails/api/generator.rb +2 -1
- data/lib/rails/api/task.rb +17 -0
- data/lib/rails/app_loader.rb +2 -2
- data/lib/rails/app_updater.rb +3 -1
- data/lib/rails/application.rb +72 -30
- data/lib/rails/application/bootstrap.rb +2 -10
- data/lib/rails/application/configuration.rb +113 -13
- data/lib/rails/application/default_middleware_stack.rb +3 -0
- data/lib/rails/application/dummy_erb_compiler.rb +18 -0
- data/lib/rails/application/finisher.rb +54 -0
- data/lib/rails/autoloaders.rb +48 -0
- data/lib/rails/backtrace_cleaner.rb +5 -17
- data/lib/rails/code_statistics.rb +3 -3
- data/lib/rails/command.rb +11 -10
- data/lib/rails/command/base.rb +12 -8
- data/lib/rails/command/behavior.rb +7 -48
- data/lib/rails/command/environment_argument.rb +8 -15
- data/lib/rails/command/spellchecker.rb +58 -0
- data/lib/rails/commands/console/console_command.rb +6 -0
- data/lib/rails/commands/credentials/USAGE +19 -1
- data/lib/rails/commands/credentials/credentials_command.rb +52 -19
- data/lib/rails/commands/db/system/change/change_command.rb +20 -0
- data/lib/rails/commands/dbconsole/dbconsole_command.rb +20 -8
- data/lib/rails/commands/dev/dev_command.rb +19 -0
- data/lib/rails/commands/encrypted/USAGE +1 -1
- data/lib/rails/commands/encrypted/encrypted_command.rb +2 -2
- data/lib/rails/commands/help/help_command.rb +1 -1
- data/lib/rails/commands/initializers/initializers_command.rb +23 -0
- data/lib/rails/commands/new/new_command.rb +2 -2
- data/lib/rails/commands/notes/notes_command.rb +39 -0
- data/lib/rails/commands/plugin/plugin_command.rb +1 -1
- data/lib/rails/commands/routes/routes_command.rb +37 -0
- data/lib/rails/commands/runner/runner_command.rb +13 -9
- data/lib/rails/commands/secrets/USAGE +3 -3
- data/lib/rails/commands/secrets/secrets_command.rb +3 -3
- data/lib/rails/commands/server/server_command.rb +113 -50
- data/lib/rails/configuration.rb +1 -7
- data/lib/rails/engine.rb +24 -16
- data/lib/rails/engine/configuration.rb +5 -2
- data/lib/rails/gem_version.rb +4 -4
- data/lib/rails/generators.rb +11 -10
- data/lib/rails/generators/actions.rb +52 -39
- data/lib/rails/generators/app_base.rb +53 -93
- data/lib/rails/generators/app_name.rb +50 -0
- data/lib/rails/generators/base.rb +0 -4
- data/lib/rails/generators/database.rb +58 -0
- data/lib/rails/generators/erb/mailer/mailer_generator.rb +1 -1
- data/lib/rails/generators/erb/scaffold/templates/_form.html.erb.tt +6 -3
- data/lib/rails/generators/erb/scaffold/templates/index.html.erb.tt +1 -1
- data/lib/rails/generators/erb/scaffold/templates/show.html.erb.tt +9 -1
- data/lib/rails/generators/generated_attribute.rb +53 -27
- data/lib/rails/generators/migration.rb +1 -2
- data/lib/rails/generators/model_helpers.rb +8 -1
- data/lib/rails/generators/named_base.rb +1 -5
- data/lib/rails/generators/rails/app/app_generator.rb +37 -71
- data/lib/rails/generators/rails/app/templates/Gemfile.tt +7 -10
- data/lib/rails/generators/rails/app/templates/app/assets/config/manifest.js.tt +0 -3
- data/lib/rails/generators/rails/app/templates/app/{assets/javascripts/cable.js.tt → javascript/channels/consumer.js} +2 -9
- data/lib/rails/generators/rails/app/templates/app/javascript/channels/index.js +5 -0
- data/lib/rails/generators/rails/app/templates/app/javascript/packs/application.js.tt +23 -0
- data/lib/rails/generators/rails/app/templates/app/jobs/application_job.rb.tt +5 -0
- data/lib/rails/generators/rails/app/templates/app/views/layouts/application.html.erb.tt +4 -4
- data/lib/rails/generators/rails/app/templates/bin/setup.tt +7 -7
- data/lib/rails/generators/rails/app/templates/config/application.rb.tt +2 -0
- data/lib/rails/generators/rails/app/templates/config/cable.yml.tt +1 -1
- data/lib/rails/generators/rails/app/templates/config/databases/frontbase.yml.tt +2 -2
- data/lib/rails/generators/rails/app/templates/config/databases/ibm_db.yml.tt +2 -2
- data/lib/rails/generators/rails/app/templates/config/databases/jdbc.yml.tt +2 -2
- data/lib/rails/generators/rails/app/templates/config/databases/jdbcmysql.yml.tt +3 -3
- data/lib/rails/generators/rails/app/templates/config/databases/jdbcpostgresql.yml.tt +3 -3
- data/lib/rails/generators/rails/app/templates/config/databases/jdbcsqlite3.yml.tt +1 -1
- data/lib/rails/generators/rails/app/templates/config/databases/mysql.yml.tt +4 -4
- data/lib/rails/generators/rails/app/templates/config/databases/oracle.yml.tt +2 -2
- data/lib/rails/generators/rails/app/templates/config/databases/postgresql.yml.tt +6 -6
- data/lib/rails/generators/rails/app/templates/config/databases/sqlite3.yml.tt +1 -1
- data/lib/rails/generators/rails/app/templates/config/databases/sqlserver.yml.tt +2 -2
- data/lib/rails/generators/rails/app/templates/config/environments/development.rb.tt +5 -2
- data/lib/rails/generators/rails/app/templates/config/environments/production.rb.tt +28 -12
- data/lib/rails/generators/rails/app/templates/config/environments/test.rb.tt +13 -6
- data/lib/rails/generators/rails/app/templates/config/initializers/assets.rb.tt +1 -1
- data/lib/rails/generators/rails/app/templates/config/initializers/content_security_policy.rb.tt +7 -0
- data/lib/rails/generators/rails/app/templates/config/initializers/new_framework_defaults_6_0.rb.tt +45 -0
- data/lib/rails/generators/rails/app/templates/config/locales/en.yml +1 -1
- data/lib/rails/generators/rails/app/templates/config/puma.rb.tt +4 -3
- data/lib/rails/generators/rails/app/templates/config/routes.rb.tt +1 -1
- data/lib/rails/generators/rails/app/templates/config/spring.rb.tt +6 -6
- data/lib/rails/generators/rails/app/templates/gitignore.tt +3 -7
- data/lib/rails/generators/rails/app/templates/package.json.tt +7 -1
- data/lib/rails/generators/rails/app/templates/public/robots.txt +1 -1
- data/lib/rails/generators/rails/app/templates/ruby-version.tt +1 -1
- data/lib/rails/generators/rails/app/templates/test/channels/application_cable/connection_test.rb.tt +11 -0
- data/lib/rails/generators/rails/app/templates/test/test_helper.rb.tt +7 -0
- data/lib/rails/generators/rails/assets/USAGE +1 -4
- data/lib/rails/generators/rails/assets/assets_generator.rb +0 -1
- data/lib/rails/generators/rails/controller/controller_generator.rb +11 -1
- data/lib/rails/generators/rails/credentials/credentials_generator.rb +7 -8
- data/lib/rails/generators/rails/db/system/change/change_generator.rb +65 -0
- data/lib/rails/generators/rails/encrypted_file/encrypted_file_generator.rb +4 -5
- data/lib/rails/generators/rails/helper/helper_generator.rb +5 -0
- data/lib/rails/generators/rails/plugin/plugin_generator.rb +9 -33
- data/lib/rails/generators/rails/plugin/templates/app/controllers/%namespaced_name%/application_controller.rb.tt +1 -1
- data/lib/rails/generators/rails/plugin/templates/app/helpers/%namespaced_name%/application_helper.rb.tt +1 -1
- data/lib/rails/generators/rails/plugin/templates/app/jobs/%namespaced_name%/application_job.rb.tt +1 -1
- data/lib/rails/generators/rails/plugin/templates/app/mailers/%namespaced_name%/application_mailer.rb.tt +1 -1
- data/lib/rails/generators/rails/plugin/templates/app/models/%namespaced_name%/application_record.rb.tt +1 -1
- data/lib/rails/generators/rails/plugin/templates/gitignore.tt +2 -1
- data/lib/rails/generators/rails/plugin/templates/lib/%namespaced_name%/engine.rb.tt +1 -1
- data/lib/rails/generators/rails/plugin/templates/lib/%namespaced_name%/railtie.rb.tt +1 -1
- data/lib/rails/generators/rails/plugin/templates/test/test_helper.rb.tt +1 -2
- data/lib/rails/generators/rails/scaffold_controller/scaffold_controller_generator.rb +14 -0
- data/lib/rails/generators/rails/scaffold_controller/templates/api_controller.rb.tt +1 -1
- data/lib/rails/generators/rails/scaffold_controller/templates/controller.rb.tt +1 -1
- data/lib/rails/generators/resource_helpers.rb +1 -6
- data/lib/rails/generators/test_unit/integration/integration_generator.rb +6 -0
- data/lib/rails/generators/test_unit/job/job_generator.rb +5 -0
- data/lib/rails/generators/test_unit/mailer/mailer_generator.rb +1 -1
- data/lib/rails/generators/test_unit/model/templates/fixtures.yml.tt +2 -2
- data/lib/rails/generators/test_unit/scaffold/scaffold_generator.rb +8 -3
- data/lib/rails/generators/test_unit/system/system_generator.rb +5 -0
- data/lib/rails/generators/testing/behaviour.rb +3 -0
- data/lib/rails/info.rb +3 -3
- data/lib/rails/info_controller.rb +1 -1
- data/lib/rails/mailers_controller.rb +7 -4
- data/lib/rails/paths.rb +19 -9
- data/lib/rails/railtie.rb +1 -1
- data/lib/rails/ruby_version_check.rb +3 -3
- data/lib/rails/secrets.rb +0 -1
- data/lib/rails/source_annotation_extractor.rb +138 -117
- data/lib/rails/tasks.rb +1 -0
- data/lib/rails/tasks/annotations.rake +9 -9
- data/lib/rails/tasks/dev.rake +5 -4
- data/lib/rails/tasks/framework.rake +5 -1
- data/lib/rails/tasks/initializers.rake +5 -4
- data/lib/rails/tasks/log.rake +0 -1
- data/lib/rails/tasks/routes.rake +4 -26
- data/lib/rails/tasks/statistics.rake +4 -0
- data/lib/rails/tasks/yarn.rake +1 -1
- data/lib/rails/tasks/zeitwerk.rake +66 -0
- data/lib/rails/templates/rails/welcome/index.html.erb +2 -2
- data/lib/rails/test_help.rb +11 -9
- data/lib/rails/test_unit/reporter.rb +1 -1
- data/lib/rails/test_unit/runner.rb +5 -5
- data/lib/rails/test_unit/testing.rake +1 -1
- metadata +34 -22
- data/lib/rails/generators/js/assets/assets_generator.rb +0 -15
- data/lib/rails/generators/js/assets/templates/javascript.js +0 -2
- data/lib/rails/generators/rails/app/templates/app/assets/javascripts/application.js.tt +0 -22
- data/lib/rails/generators/rails/app/templates/bin/bundle.tt +0 -2
- data/lib/rails/generators/rails/app/templates/bin/update.tt +0 -34
- data/lib/rails/generators/rails/app/templates/config/initializers/new_framework_defaults_5_2.rb.tt +0 -38
- data/lib/rails/generators/rails/assets/templates/javascript.js +0 -2
@@ -18,20 +18,17 @@ ruby <%= "'#{RUBY_VERSION}'" -%>
|
|
18
18
|
<% end -%>
|
19
19
|
<% end -%>
|
20
20
|
|
21
|
-
# Use
|
21
|
+
# Use Active Model has_secure_password
|
22
22
|
# gem 'bcrypt', '~> 3.1.7'
|
23
23
|
<% unless skip_active_storage? -%>
|
24
24
|
|
25
|
-
# Use
|
26
|
-
# gem '
|
25
|
+
# Use Active Storage variant
|
26
|
+
# gem 'image_processing', '~> 1.2'
|
27
27
|
<% end -%>
|
28
28
|
|
29
|
-
# Use Capistrano for deployment
|
30
|
-
# gem 'capistrano-rails', group: :development
|
31
|
-
|
32
29
|
<% if depend_on_bootsnap? -%>
|
33
30
|
# Reduces boot times through caching; required in config/boot.rb
|
34
|
-
gem 'bootsnap', '>= 1.
|
31
|
+
gem 'bootsnap', '>= 1.4.2', require: false
|
35
32
|
|
36
33
|
<%- end -%>
|
37
34
|
<%- if options.api? -%>
|
@@ -72,10 +69,10 @@ group :test do
|
|
72
69
|
# Adds support for Capybara system testing and selenium driver
|
73
70
|
gem 'capybara', '>= 2.15'
|
74
71
|
gem 'selenium-webdriver'
|
75
|
-
# Easy installation and use of
|
76
|
-
gem '
|
72
|
+
# Easy installation and use of web drivers to run system tests with browsers
|
73
|
+
gem 'webdrivers'
|
77
74
|
end
|
78
|
-
<%- end -%>
|
79
75
|
|
76
|
+
<%- end -%>
|
80
77
|
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
|
81
78
|
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
|
@@ -1,13 +1,6 @@
|
|
1
1
|
// Action Cable provides the framework to deal with WebSockets in Rails.
|
2
2
|
// You can generate new channels where WebSocket features live using the `rails generate channel` command.
|
3
|
-
//
|
4
|
-
//= require action_cable
|
5
|
-
//= require_self
|
6
|
-
//= require_tree ./channels
|
7
3
|
|
8
|
-
|
9
|
-
this.App || (this.App = {});
|
4
|
+
import { createConsumer } from "@rails/actioncable"
|
10
5
|
|
11
|
-
|
12
|
-
|
13
|
-
}).call(this);
|
6
|
+
export default createConsumer()
|
@@ -0,0 +1,23 @@
|
|
1
|
+
// This file is automatically compiled by Webpack, along with any other files
|
2
|
+
// present in this directory. You're encouraged to place your actual application logic in
|
3
|
+
// a relevant structure within app/javascript and only use these pack files to reference
|
4
|
+
// that code so it'll be compiled.
|
5
|
+
|
6
|
+
require("@rails/ujs").start()
|
7
|
+
<%- unless options[:skip_turbolinks] -%>
|
8
|
+
require("turbolinks").start()
|
9
|
+
<%- end -%>
|
10
|
+
<%- unless skip_active_storage? -%>
|
11
|
+
require("@rails/activestorage").start()
|
12
|
+
<%- end -%>
|
13
|
+
<%- unless options[:skip_action_cable] -%>
|
14
|
+
require("channels")
|
15
|
+
<%- end -%>
|
16
|
+
|
17
|
+
|
18
|
+
// Uncomment to copy all static images under ../images to the output folder and reference
|
19
|
+
// them with the image_pack_tag helper in views (e.g <%%= image_pack_tag 'rails.png' %>)
|
20
|
+
// or the `imagePath` JavaScript helper below.
|
21
|
+
//
|
22
|
+
// const images = require.context('../images', true)
|
23
|
+
// const imagePath = (name) => images(name, true)
|
@@ -1,2 +1,7 @@
|
|
1
1
|
class ApplicationJob < ActiveJob::Base
|
2
|
+
# Automatically retry jobs that encountered a deadlock
|
3
|
+
# retry_on ActiveRecord::Deadlocked
|
4
|
+
|
5
|
+
# Most jobs are safe to ignore if the underlying records are no longer available
|
6
|
+
# discard_on ActiveJob::DeserializationError
|
2
7
|
end
|
@@ -9,11 +9,11 @@
|
|
9
9
|
<%%= stylesheet_link_tag 'application', media: 'all' %>
|
10
10
|
<%- else -%>
|
11
11
|
<%- unless options[:skip_turbolinks] -%>
|
12
|
-
<%%= stylesheet_link_tag
|
13
|
-
<%%=
|
12
|
+
<%%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
|
13
|
+
<%%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %>
|
14
14
|
<%- else -%>
|
15
|
-
<%%= stylesheet_link_tag
|
16
|
-
<%%=
|
15
|
+
<%%= stylesheet_link_tag 'application', media: 'all' %>
|
16
|
+
<%%= javascript_pack_tag 'application' %>
|
17
17
|
<%- end -%>
|
18
18
|
<%- end -%>
|
19
19
|
</head>
|
@@ -1,5 +1,4 @@
|
|
1
1
|
require 'fileutils'
|
2
|
-
include FileUtils
|
3
2
|
|
4
3
|
# path to your application root.
|
5
4
|
APP_ROOT = File.expand_path('..', __dir__)
|
@@ -8,27 +7,28 @@ def system!(*args)
|
|
8
7
|
system(*args) || abort("\n== Command #{args} failed ==")
|
9
8
|
end
|
10
9
|
|
11
|
-
chdir APP_ROOT do
|
12
|
-
# This script is a
|
10
|
+
FileUtils.chdir APP_ROOT do
|
11
|
+
# This script is a way to setup or update your development environment automatically.
|
12
|
+
# This script is idempotent, so that you can run it at anytime and get an expectable outcome.
|
13
13
|
# Add necessary setup steps to this file.
|
14
14
|
|
15
15
|
puts '== Installing dependencies =='
|
16
16
|
system! 'gem install bundler --conservative'
|
17
17
|
system('bundle check') || system!('bundle install')
|
18
|
-
<% unless options.
|
18
|
+
<% unless options.skip_javascript? -%>
|
19
19
|
|
20
|
-
# Install JavaScript dependencies
|
20
|
+
# Install JavaScript dependencies
|
21
21
|
# system('bin/yarn')
|
22
22
|
<% end -%>
|
23
23
|
<% unless options.skip_active_record? -%>
|
24
24
|
|
25
25
|
# puts "\n== Copying sample files =="
|
26
26
|
# unless File.exist?('config/database.yml')
|
27
|
-
# cp 'config/database.yml.sample', 'config/database.yml'
|
27
|
+
# FileUtils.cp 'config/database.yml.sample', 'config/database.yml'
|
28
28
|
# end
|
29
29
|
|
30
30
|
puts "\n== Preparing database =="
|
31
|
-
system! 'bin/rails db:
|
31
|
+
system! 'bin/rails db:prepare'
|
32
32
|
<% end -%>
|
33
33
|
|
34
34
|
puts "\n== Removing old logs and tempfiles =="
|
@@ -11,6 +11,8 @@ require "active_job/railtie"
|
|
11
11
|
<%= comment_if :skip_active_storage %>require "active_storage/engine"
|
12
12
|
require "action_controller/railtie"
|
13
13
|
<%= comment_if :skip_action_mailer %>require "action_mailer/railtie"
|
14
|
+
<%= comment_if :skip_action_mailbox %>require "action_mailbox/engine"
|
15
|
+
<%= comment_if :skip_action_text %>require "action_text/engine"
|
14
16
|
require "action_view/railtie"
|
15
17
|
<%= comment_if :skip_action_cable %>require "action_cable/engine"
|
16
18
|
<%= comment_if :skip_sprockets %>require "sprockets/railtie"
|
@@ -24,12 +24,12 @@ test:
|
|
24
24
|
<<: *default
|
25
25
|
database: <%= app_name %>_test
|
26
26
|
|
27
|
-
# As with config/
|
27
|
+
# As with config/credentials.yml, you never want to store sensitive information,
|
28
28
|
# like your database password, in your source code. If your source code is
|
29
29
|
# ever seen by anyone, they now have access to your database.
|
30
30
|
#
|
31
31
|
# Instead, provide the password as a unix environment variable when you boot
|
32
|
-
# the app. Read
|
32
|
+
# the app. Read https://guides.rubyonrails.org/configuring.html#configuring-a-database
|
33
33
|
# for a full rundown on how to provide these environment variables in a
|
34
34
|
# production deployment.
|
35
35
|
#
|
@@ -60,12 +60,12 @@ test:
|
|
60
60
|
<<: *default
|
61
61
|
database: <%= app_name[0,4] %>_tst
|
62
62
|
|
63
|
-
# As with config/
|
63
|
+
# As with config/credentials.yml, you never want to store sensitive information,
|
64
64
|
# like your database password, in your source code. If your source code is
|
65
65
|
# ever seen by anyone, they now have access to your database.
|
66
66
|
#
|
67
67
|
# Instead, provide the password as a unix environment variable when you boot
|
68
|
-
# the app. Read
|
68
|
+
# the app. Read https://guides.rubyonrails.org/configuring.html#configuring-a-database
|
69
69
|
# for a full rundown on how to provide these environment variables in a
|
70
70
|
# production deployment.
|
71
71
|
#
|
@@ -54,12 +54,12 @@ test:
|
|
54
54
|
<<: *default
|
55
55
|
url: jdbc:db://localhost/<%= app_name %>_test
|
56
56
|
|
57
|
-
# As with config/
|
57
|
+
# As with config/credentials.yml, you never want to store sensitive information,
|
58
58
|
# like your database password, in your source code. If your source code is
|
59
59
|
# ever seen by anyone, they now have access to your database.
|
60
60
|
#
|
61
61
|
# Instead, provide the password as a unix environment variable when you boot
|
62
|
-
# the app. Read
|
62
|
+
# the app. Read https://guides.rubyonrails.org/configuring.html#configuring-a-database
|
63
63
|
# for a full rundown on how to provide these environment variables in a
|
64
64
|
# production deployment.
|
65
65
|
#
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# MySQL. Versions 5.
|
1
|
+
# MySQL. Versions 5.5.8 and up are supported.
|
2
2
|
#
|
3
3
|
# Install the MySQL driver:
|
4
4
|
# gem install activerecord-jdbcmysql-adapter
|
@@ -27,12 +27,12 @@ test:
|
|
27
27
|
<<: *default
|
28
28
|
database: <%= app_name %>_test
|
29
29
|
|
30
|
-
# As with config/
|
30
|
+
# As with config/credentials.yml, you never want to store sensitive information,
|
31
31
|
# like your database password, in your source code. If your source code is
|
32
32
|
# ever seen by anyone, they now have access to your database.
|
33
33
|
#
|
34
34
|
# Instead, provide the password as a unix environment variable when you boot
|
35
|
-
# the app. Read
|
35
|
+
# the app. Read https://guides.rubyonrails.org/configuring.html#configuring-a-database
|
36
36
|
# for a full rundown on how to provide these environment variables in a
|
37
37
|
# production deployment.
|
38
38
|
#
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# PostgreSQL. Versions 9.
|
1
|
+
# PostgreSQL. Versions 9.3 and up are supported.
|
2
2
|
#
|
3
3
|
# Configure Using Gemfile
|
4
4
|
# gem 'activerecord-jdbcpostgresql-adapter'
|
@@ -43,12 +43,12 @@ test:
|
|
43
43
|
<<: *default
|
44
44
|
database: <%= app_name %>_test
|
45
45
|
|
46
|
-
# As with config/
|
46
|
+
# As with config/credentials.yml, you never want to store sensitive information,
|
47
47
|
# like your database password, in your source code. If your source code is
|
48
48
|
# ever seen by anyone, they now have access to your database.
|
49
49
|
#
|
50
50
|
# Instead, provide the password as a unix environment variable when you boot
|
51
|
-
# the app. Read
|
51
|
+
# the app. Read https://guides.rubyonrails.org/configuring.html#configuring-a-database
|
52
52
|
# for a full rundown on how to provide these environment variables in a
|
53
53
|
# production deployment.
|
54
54
|
#
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# MySQL. Versions 5.
|
1
|
+
# MySQL. Versions 5.5.8 and up are supported.
|
2
2
|
#
|
3
3
|
# Install the MySQL driver
|
4
4
|
# gem install mysql2
|
@@ -11,7 +11,7 @@
|
|
11
11
|
#
|
12
12
|
default: &default
|
13
13
|
adapter: mysql2
|
14
|
-
encoding:
|
14
|
+
encoding: utf8mb4
|
15
15
|
pool: <%%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
|
16
16
|
username: root
|
17
17
|
password:
|
@@ -32,12 +32,12 @@ test:
|
|
32
32
|
<<: *default
|
33
33
|
database: <%= app_name %>_test
|
34
34
|
|
35
|
-
# As with config/
|
35
|
+
# As with config/credentials.yml, you never want to store sensitive information,
|
36
36
|
# like your database password, in your source code. If your source code is
|
37
37
|
# ever seen by anyone, they now have access to your database.
|
38
38
|
#
|
39
39
|
# Instead, provide the password as a unix environment variable when you boot
|
40
|
-
# the app. Read
|
40
|
+
# the app. Read https://guides.rubyonrails.org/configuring.html#configuring-a-database
|
41
41
|
# for a full rundown on how to provide these environment variables in a
|
42
42
|
# production deployment.
|
43
43
|
#
|
@@ -33,12 +33,12 @@ test:
|
|
33
33
|
<<: *default
|
34
34
|
database: <%= app_name %>_test
|
35
35
|
|
36
|
-
# As with config/
|
36
|
+
# As with config/credentials.yml, you never want to store sensitive information,
|
37
37
|
# like your database password, in your source code. If your source code is
|
38
38
|
# ever seen by anyone, they now have access to your database.
|
39
39
|
#
|
40
40
|
# Instead, provide the password as a unix environment variable when you boot
|
41
|
-
# the app. Read
|
41
|
+
# the app. Read https://guides.rubyonrails.org/configuring.html#configuring-a-database
|
42
42
|
# for a full rundown on how to provide these environment variables in a
|
43
43
|
# production deployment.
|
44
44
|
#
|
@@ -1,10 +1,10 @@
|
|
1
|
-
# PostgreSQL. Versions 9.
|
1
|
+
# PostgreSQL. Versions 9.3 and up are supported.
|
2
2
|
#
|
3
3
|
# Install the pg driver:
|
4
4
|
# gem install pg
|
5
|
-
# On
|
5
|
+
# On macOS with Homebrew:
|
6
6
|
# gem install pg -- --with-pg-config=/usr/local/bin/pg_config
|
7
|
-
# On
|
7
|
+
# On macOS with MacPorts:
|
8
8
|
# gem install pg -- --with-pg-config=/opt/local/lib/postgresql84/bin/pg_config
|
9
9
|
# On Windows:
|
10
10
|
# gem install pg
|
@@ -18,7 +18,7 @@ default: &default
|
|
18
18
|
adapter: postgresql
|
19
19
|
encoding: unicode
|
20
20
|
# For details on connection pooling, see Rails configuration guide
|
21
|
-
#
|
21
|
+
# https://guides.rubyonrails.org/configuring.html#database-pooling
|
22
22
|
pool: <%%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
|
23
23
|
|
24
24
|
development:
|
@@ -59,12 +59,12 @@ test:
|
|
59
59
|
<<: *default
|
60
60
|
database: <%= app_name %>_test
|
61
61
|
|
62
|
-
# As with config/
|
62
|
+
# As with config/credentials.yml, you never want to store sensitive information,
|
63
63
|
# like your database password, in your source code. If your source code is
|
64
64
|
# ever seen by anyone, they now have access to your database.
|
65
65
|
#
|
66
66
|
# Instead, provide the password as a unix environment variable when you boot
|
67
|
-
# the app. Read
|
67
|
+
# the app. Read https://guides.rubyonrails.org/configuring.html#configuring-a-database
|
68
68
|
# for a full rundown on how to provide these environment variables in a
|
69
69
|
# production deployment.
|
70
70
|
#
|
@@ -26,12 +26,12 @@ test:
|
|
26
26
|
<<: *default
|
27
27
|
database: <%= app_name %>_test
|
28
28
|
|
29
|
-
# As with config/
|
29
|
+
# As with config/credentials.yml, you never want to store sensitive information,
|
30
30
|
# like your database password, in your source code. If your source code is
|
31
31
|
# ever seen by anyone, they now have access to your database.
|
32
32
|
#
|
33
33
|
# Instead, provide the password as a unix environment variable when you boot
|
34
|
-
# the app. Read
|
34
|
+
# the app. Read https://guides.rubyonrails.org/configuring.html#configuring-a-database
|
35
35
|
# for a full rundown on how to provide these environment variables in a
|
36
36
|
# production deployment.
|
37
37
|
#
|
@@ -15,8 +15,11 @@ Rails.application.configure do
|
|
15
15
|
# Enable/disable caching. By default caching is disabled.
|
16
16
|
# Run rails dev:cache to toggle caching.
|
17
17
|
if Rails.root.join('tmp', 'caching-dev.txt').exist?
|
18
|
+
<%- unless options.api? -%>
|
18
19
|
config.action_controller.perform_caching = true
|
20
|
+
config.action_controller.enable_fragment_cache_logging = true
|
19
21
|
|
22
|
+
<%- end -%>
|
20
23
|
config.cache_store = :memory_store
|
21
24
|
config.public_file_server.headers = {
|
22
25
|
'Cache-Control' => "public, max-age=#{2.days.to_i}"
|
@@ -28,7 +31,7 @@ Rails.application.configure do
|
|
28
31
|
end
|
29
32
|
<%- unless skip_active_storage? -%>
|
30
33
|
|
31
|
-
# Store uploaded files on the local file system (see config/storage.yml for options)
|
34
|
+
# Store uploaded files on the local file system (see config/storage.yml for options).
|
32
35
|
config.active_storage.service = :local
|
33
36
|
<%- end -%>
|
34
37
|
<%- unless options.skip_action_mailer? -%>
|
@@ -60,7 +63,7 @@ Rails.application.configure do
|
|
60
63
|
config.assets.quiet = true
|
61
64
|
<%- end -%>
|
62
65
|
|
63
|
-
# Raises error for missing translations
|
66
|
+
# Raises error for missing translations.
|
64
67
|
# config.action_view.raise_on_missing_translations = true
|
65
68
|
|
66
69
|
# Use an evented file watcher to asynchronously detect changes in source code,
|
@@ -12,7 +12,9 @@ Rails.application.configure do
|
|
12
12
|
|
13
13
|
# Full error reports are disabled and caching is turned on.
|
14
14
|
config.consider_all_requests_local = false
|
15
|
+
<%- unless options.api? -%>
|
15
16
|
config.action_controller.perform_caching = true
|
17
|
+
<%- end -%>
|
16
18
|
|
17
19
|
# Ensures that a master key has been made available in either ENV["RAILS_MASTER_KEY"]
|
18
20
|
# or in config/master.key. This key is used to decrypt credentials (and other encrypted files).
|
@@ -23,19 +25,12 @@ Rails.application.configure do
|
|
23
25
|
config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present?
|
24
26
|
|
25
27
|
<%- unless options.skip_sprockets? -%>
|
26
|
-
|
27
|
-
# Compress CSS.
|
28
|
-
<%- else -%>
|
29
|
-
# Compress JavaScripts and CSS.
|
30
|
-
config.assets.js_compressor = :uglifier
|
31
|
-
<%- end -%>
|
28
|
+
# Compress CSS using a preprocessor.
|
32
29
|
# config.assets.css_compressor = :sass
|
33
30
|
|
34
31
|
# Do not fallback to assets pipeline if a precompiled asset is missed.
|
35
32
|
config.assets.compile = false
|
36
33
|
|
37
|
-
# `config.assets.precompile` and `config.assets.version` have moved to config/initializers/assets.rb
|
38
|
-
|
39
34
|
<%- end -%>
|
40
35
|
# Enable serving of images, stylesheets, and JavaScripts from an asset server.
|
41
36
|
# config.action_controller.asset_host = 'http://assets.example.com'
|
@@ -45,12 +40,12 @@ Rails.application.configure do
|
|
45
40
|
# config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for NGINX
|
46
41
|
|
47
42
|
<%- unless skip_active_storage? -%>
|
48
|
-
# Store uploaded files on the local file system (see config/storage.yml for options)
|
43
|
+
# Store uploaded files on the local file system (see config/storage.yml for options).
|
49
44
|
config.active_storage.service = :local
|
50
45
|
|
51
46
|
<%- end -%>
|
52
47
|
<%- unless options[:skip_action_cable] -%>
|
53
|
-
# Mount Action Cable outside main process or domain
|
48
|
+
# Mount Action Cable outside main process or domain.
|
54
49
|
# config.action_cable.mount_path = nil
|
55
50
|
# config.action_cable.url = 'wss://example.com/cable'
|
56
51
|
# config.action_cable.allowed_request_origins = [ 'http://example.com', /http:\/\/example.*/ ]
|
@@ -69,9 +64,9 @@ Rails.application.configure do
|
|
69
64
|
# Use a different cache store in production.
|
70
65
|
# config.cache_store = :mem_cache_store
|
71
66
|
|
72
|
-
# Use a real queuing backend for Active Job (and separate queues per environment)
|
67
|
+
# Use a real queuing backend for Active Job (and separate queues per environment).
|
73
68
|
# config.active_job.queue_adapter = :resque
|
74
|
-
# config.active_job.queue_name_prefix = "<%= app_name %>
|
69
|
+
# config.active_job.queue_name_prefix = "<%= app_name %>_production"
|
75
70
|
|
76
71
|
<%- unless options.skip_action_mailer? -%>
|
77
72
|
config.action_mailer.perform_caching = false
|
@@ -105,4 +100,25 @@ Rails.application.configure do
|
|
105
100
|
# Do not dump schema after migrations.
|
106
101
|
config.active_record.dump_schema_after_migration = false
|
107
102
|
<%- end -%>
|
103
|
+
|
104
|
+
# Inserts middleware to perform automatic connection switching.
|
105
|
+
# The `database_selector` hash is used to pass options to the DatabaseSelector
|
106
|
+
# middleware. The `delay` is used to determine how long to wait after a write
|
107
|
+
# to send a subsequent read to the primary.
|
108
|
+
#
|
109
|
+
# The `database_resolver` class is used by the middleware to determine which
|
110
|
+
# database is appropriate to use based on the time delay.
|
111
|
+
#
|
112
|
+
# The `database_resolver_context` class is used by the middleware to set
|
113
|
+
# timestamps for the last write to the primary. The resolver uses the context
|
114
|
+
# class timestamps to determine how long to wait before reading from the
|
115
|
+
# replica.
|
116
|
+
#
|
117
|
+
# By default Rails will store a last write timestamp in the session. The
|
118
|
+
# DatabaseSelector middleware is designed as such you can define your own
|
119
|
+
# strategy for connection switching and pass that into the middleware through
|
120
|
+
# these configuration options.
|
121
|
+
# config.active_record.database_selector = { delay: 2.seconds }
|
122
|
+
# config.active_record.database_resolver = ActiveRecord::Middleware::DatabaseSelector::Resolver
|
123
|
+
# config.active_record.database_resolver_context = ActiveRecord::Middleware::DatabaseSelector::Resolver::Session
|
108
124
|
end
|