[ci skip] a destroy action in controller, not delete [getting_stated.md].
Do not store production information in .yml files

Instead, read information from environment variables.
Merge pull request #13462 from JuanitoFatas/getting-started

[ci skip] a destroy action in controller, not delete [getting_stated.md].
Move the null mime type to request.format

TLDR: always return an object that responds to the query methods from
request.format, and do not touch Mime::Type[] lookup to avoid bugs.

---

Long version:

The initial issue was about being able to do checks like
request.format.html? for request with an unknown format, where
request.format would be nil.

This is where the issue came from at first in #7837 and #8085
(merged in cba05887dc3b56a46a9fe2779b6b228880b49622), but the
implementation went down the path of adding this to the mime type
lookup logic.

This unfortunately introduced subtle bugs, for instance in the merged
commit a test related to send_file had to be changed to accomodate the
introduction of the NullType.

Later another bug was found in #13064, related to the content-type being
shown as #<Mime::NullType:...> for templates with localized extensions
but no format included. This one was fixed in #13133, merged in
43962d6ec50f918c9970bd3cd4b6ee5c7f7426ed.

Besides that, custom handlers were not receiving the proper template
formats anymore when passing through the rendering process, because of
the NullType addition. That was found while migrating an application
from 3.2 to 4.0 that uses the Markerb gem (a custom handler that
generates both text and html emails from a markdown template).

---

This changes the implementation moving away from returning this null
object from the mime lookup, and still fixes the initial issue where
request.format.zomg? would raise an exception for unknown formats due to
request.format being nil.
Do not consider PG array columns as number or text columns

The code uses these checks in several places to know what to do with a
particular column, for instance AR attribute query methods has a branch
like this:

    if column.number?
      !value.zero?
    end

This should never be true for array columns, since it would be the same
as running [].zero?, which results in a NoMethodError exception.

Fixing this by ensuring that array columns in PostgreSQL never return
true for number?/text? checks.

Since most of the array support was based on the postgres_ext lib, it's
worth noting it does the same thing for numeric array columns too:

https://github.com/dockyard/postgres_ext/blob/v1.0.0/lib/postgres_ext/active_record/connection_adapters/postgres_adapter.rb#L72

This extended the same logic for text columns to ensure consistency.
Serialize postgres' hstore, json and array types correctly in AR update methods.

Fixes #12261. Closes #12395.

Conflicts:
	activerecord/CHANGELOG.md
	activerecord/test/cases/adapters/postgresql/array_test.rb
	activerecord/test/cases/adapters/postgresql/json_test.rb
Tidy up fix for PG extensions quoting

Always pass in the column for quote_bound_value and quote using it in
case it exists there.
Guarantee the connection resolver handles string values

This commit also cleans up the rake tasks that were checking
for DATABASE_URL in different places.

In fact, it would be nice to deprecate DATABASE_URL usage in the long
term, considering the direction we are moving of allowing those in .yml
files.
Add examples and namespace ENV options with "RAILS_"
Use the new Resolver API in dbconsole
Update CHANGELOG [ci skip]
Disable locale checks to avoid warnings in Active Model tests [ci skip]

Missed AMo when adding to the other components in
ae196e85ee7169700afac2eecdc276bc06b10b8d.
Merge pull request #13463 from josevalim/jv-env

Do not store production information in .yml files
AC::Parameters#permit! permits hashes in array values
Unused classes in AV tests
Fix build failures related to the new ENV options in yml
Only build a ConnectionSpecification if required
Deprecate use of string in establish_connection as connection lookup
Fix few typos and improve markup at some levels
[ci skip] Update getting started Ruby version.