| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|\
| |
| |
| |
| |
| |
| | |
Fix for #13437
Conflicts:
activerecord/CHANGELOG.md
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
a8 introduced a regression in includes/preloades
by calling `read_attribute` on an association when preloading takes places, instead of using loaded records in `association.target`.
tl;dr
Records are not made properly available via `read_attribute` when preloding in simultaneous,
but value of `@loaded` is already set true, and records concatenated in `association.target` on an association object.
When `@loaded` is true we return an object of `AlreadyLoaded` in preload_for. In `AlreadyLoaded` to return preloaded
records we make wrong use of `read_attribute`, instead of `target` records.
The regression is fixed by making use of the loaded records in `association.target` when the preloading takes place.
Fixes #13437
|
|\ \
| | |
| | | |
Update grant statement to address #13549
|
| | |
| | |
| | |
| | |
| | |
| | | |
to make this grant statement described in the document works
GRANT ALL PRIVILEGES ON inexistent_activerecord_unittest.* to 'rails'@'localhost';
|
| | | |
|
| | | |
|
|/ /
| |
| |
| |
| | |
Outer joins were being built on the root relation klass rather than the
one specified in the join dependency root
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Currently a developer can pass in a YAML configuration that fully specifies connection information:
```
production:
database: triage_production
adapter: password
pool: 5
```
They can also pass in a string that specifies a connection URL directly to an environment key:
```
production: postgresql://localhost/foo
```
This PR allows the use of both a connection url and specifying connection attributes via YAML through the use of the "url" sub key:
```
production:
url: postgresql://localhost/foo
pool: 3
```
This will allow developers to inherit Active Record options such as `pool` from `&defaults` and still use a secure connection url such as `<%= ENV['DATABASE_URL'] %>`. The URL is expanded into a hash and then merged back into the YAML hash. If there are any conflicts, the values from the connection URL are preferred.
Talked this over with @josevalim
|
|\ \
| | |
| | | |
[ci skip] ConnectionSpecification::Resolver Docs
|
| | |
| | |
| | |
| | |
| | | |
Document the internal interfaces of `ConnectionSpecification::Resolver`
Change method name from `config` to `env` to better match the most common use case.
|
| | | |
|
|\ \ \
| | | |
| | | | |
Add a missing changelog entry for #13534 [ci skip]
|
| | |/
| |/| |
|
| |/
|/|
| |
| |
| |
| |
| |
| | |
FIXTURES_PATH has a bit different case than DatabaseTasks.fixtures_path,
which was added along with deprecation. A use case for FIXTURES_PATH
could be loading fixtures from a different directory just for a given
test run. The implementation is fairly simple, so leaving it as it is
won't hurt.
|
|\ \
| | |
| | | |
Extract db url connection logic to class
|
| |/ |
|
|\ \
| | |
| | | |
Use user-defined configurations in mysql tests
|
| |/
| |
| |
| | |
user's system configuration
|
|/
|
|
| |
argument
|
| |
|
|\
| |
| | |
Copy changed_attributes across to newly become'd records
|
| |
| |
| | |
Without this, the original record's values won't get saved, since the partial insertions support (https://github.com/rails/rails/commit/144e8691cbfb8bba77f18cfe68d5e7fd48887f5e) checks for changed values and thinks there are none.
|
| | |
|
| |
| |
| |
| |
| |
| | |
Warning:
DEPRECATION WARNING: Passing a string to ActiveRecord::Base.establish_connection for a configuration lookup is deprecated, please pass a symbol (:development) instead.
|
| |
| |
| |
| |
| |
| |
| | |
Warning:
~/projects/rails/activerecord/lib/active_record/railtie.rb:140: warning: method redefined; discarding old extend_message
~/projects/rails/activerecord/lib/active_record/errors.rb:104: warning: previous definition of extend_message was here
|
|\ \
| | |
| | | |
Move mysql2 test for when adapter will be loaded
|
| |/
| |
| |
| |
| |
| | |
When run with only the Mysql adapter, we get this failure: https://travis-ci.org/rails/rails/jobs/15937907#L2416
Porting the test over to only run when mysql2 is loaded
|
|\ \
| | |
| | | |
Typo rectified commom => common[ci skip]
|
| | | |
|
| |/
|/| |
|
| |
| |
| | |
Building on the work of #13427 this PR adds a helpful error message to the adapters: mysql, mysql2, and sqlite3
|
| | |
|
| | |
|
| | |
|
|\ \
| | |
| | | |
Do not store production information in .yml files
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
| | |
| | |
| | |
| | |
| | | |
Always pass in the column for quote_bound_value and quote using it in
case it exists there.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Fixes #12261. Closes #12395.
Conflicts:
activerecord/CHANGELOG.md
activerecord/test/cases/adapters/postgresql/array_test.rb
activerecord/test/cases/adapters/postgresql/json_test.rb
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Currently if you attempt to use a database that does not exist you get an error:
```
PG::ConnectionBad FATAL: database "db_error" does not exist
```
The solution is easy, create and migrate your database however new developers may not know these commands by memory. Instead of requiring the developer to search for a solution, tell them how to fix the problem in the error message:
```
ActiveRecord::NoDatabase: FATAL: database "db_error" does not exist
Run `$ bin/rake db:create db:migrate` to create your database
```
Active Record should not know about `rake db:migrate` so this additional information needs to come from the railtie. Potential alternative implementation suggestions are welcome.
|
| | |
|
| |
| |
| |
| | |
Fixes: #13445
|
|\ \
| | |
| | | |
Resolver test cases
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | | |
Closes #13444
|
|/ / |
|
| | |
|
|\ \
| | |
| | | |
fix CollectionAssociation's comments
|