| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|/ / |
|
| |
| |
| |
| |
| | |
This allows end-users to have a `connection` method on their models
without clashing with ActiveRecord internals.
|
| | |
|
| |
| |
| |
| |
| | |
During insertion of "# This migration comes from ... " comment at the beginning of
a migration, presence of magic comment was not considered.
|
| |
| |
| |
| | |
[ci skip]
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | | |
Fix ActiveRecord `subclass_from_attrs` when eager_load is false.
Conflicts:
activerecord/CHANGELOG.md
|
| | |
| | |
| | |
| | |
| | | |
It cannot find subclass because all classes are loaded automatically
when it needs.
|
|\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Use the index name explicitly provided in a migration when reverting.
Fixes #8868
Conflicts:
activerecord/CHANGELOG.md
|
| | | |
| | | |
| | | |
| | | | |
schema_statements uses the column name by default to construct the index name, and then raises an exception if it doesn't exist, even if the name option is specified, which causes #8858. this commit makes index_name_for_remove fall back to constructing the index name to remove based on the name option.
|
|\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
cfabianski/disable_prepared_statement_when_preparing_a_query
Unprepared Visitor + unprepared_statement
Conflicts:
activerecord/CHANGELOG.md
|
| |/ / / |
|
| | | | |
|
|/ / /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Currently Post.active.inactive will result in Post.inactive since
the last where clause wins when scopes are merged.
This pull request will merge all scopes ( barring defaul scope)
using AND.
The default scope will be overridden if another scope acts on the
same where clause.
closes #7365
|
|\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
cache_key consults updated_on timestamp if present
Conflicts:
activerecord/CHANGELOG.md
|
| | | |
| | | |
| | | |
| | | |
| | | | |
- Extract max timestamp retrieval for cache_key
- Update changelog for cache_key changes
|
|\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
More helpful error message when instantiating an abstract class
Conflicts:
activerecord/CHANGELOG.md
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Calling a literal ActiveRecord::Base.new raises NoMethodError,
since it ends up calling Class.abstract_class? which does not exist.
Similarly, instantiating an actual abstract class hits the database,
when conventionally it should immediately throw NotImplementedError.
ActiveRecord::Base can't be made abstract without breaking many,
many things, so check for it separately.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Closes #9518.
The rake task used to fail silently and left an empty `structure.sql`.
It's confusing for users to get to the root of the problem.
The warning message tells them where to look.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
As of ccc6910c we use `mysqldump` to create the `structure.sql`.
The old `#structure_dump` code is still in AR but never used.
I removed all relevant parts from the code-base.
|
| |_|/ /
|/| | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Closes #9483.
There are SQL Queries that can't run inside a transaction. Since
the Migrator used to wrap all Migrations inside a transaction there
was no way to run these queries within a migration.
This patch adds `self.disable_ddl_transaction!` to the migration to
turn transactions off when necessary.
|
| | | | |
|
| | | | |
|
| | | | |
|
|/ / /
| | |
| | |
| | |
| | | |
relations. Specific where values can be unscoped, and the unscope method
still works when relations are merged or combined.
|
|\ \ \
| | | |
| | | |
| | | | |
Fix PostgreSQL TIMESTAMP WITH TIME ZONE to return ActiveSupport::Time
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
In an AR model a timestamptz attribute would return a ruby string and AR
tests did not check for any type casting. Previous tests would pass
only because an assert_equal was being used on a Time.utc object, which
will parse the right side of the eq to a valid Time instance for
comparision.
switch to test instance of Time instead of ActiveSupport::TimeWithZone
|
|/ / /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Closes #7364.
Collection associations behave similar to Arrays. However there is no
way to prepend records. And to append one should use `<<`. Before this
patch `#append` and `#prepend` did not add the record to the loaded
association.
`#append` now behaves like `<<` and `#prepend` is not defined.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Sometimes you want to create a table without an associated model and
test, which is also not a join table. With this commit, you can now
do that.
Example:
rails g migration create_posts title:string
or
rails g migration CreatePosts title:string
This commit also moves the template the model generator uses for the
migration to the migration templates folder, as it seems a more
sensible place for it now that it is shared code.
|
| | |
| | |
| | |
| | | |
[ci skip]
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Closes #9480.
We use `TableDefinition` for `#create_table` and `Table` for `#change_table`.
The PostgreSQL sepcifc types were only defined on `TableDefinition` so I
also added them to `Table`.
|
| | |
| | |
| | |
| | |
| | | |
This reverts commit 408227d9c5ed7de26310d72a1a99c1ee02311c63, reversing
changes made to dca0b57d03deffc933763482e615c3cf0b9a1d97.
|
|\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Fix calculation of db_runtime property in
ActiveRecord::Railties::ControllerRuntime#cleanup_view_runtime.
Previously, after raising ActionView::MissingTemplate, db_runtime was
not populated.
Closes #9218, Fixes #9215.
Conflicts:
activerecord/CHANGELOG.md
|
| | | |
| | | |
| | | |
| | | | |
exception
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
If the parent of a `belongs_to` record fails to be saved due to
validation errors, `touch` will be called on a new record, which causes
an exception (see https://github.com/rails/rails/pull/9320).
Example:
class Owner < ActiveRecord::Base
validates_presence_of :name
end
class Pet < ActiveRecord::Base
belongs_to :owner, touch: true
end
pet = Pet.new(owner: Owner.new)
# Before, this line would raise ActiveRecord::ActiveRecordError
# "can not touch on a new record object"
pet.save
|
| | | | |
|
|\ \ \ \
| |_|/ /
|/| | | |
Expand order(:symbol) to "table".symbol to prevent broken queries on PG.
|
| | |/
| |/|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Fixes #9275.
When `#order` is called with a Symbol this patch will prepend the quoted_table_name.
Before the postgresql adapter failed to build queries containg a join and an order
with a symbol.
This expansion happens for all adapters.
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
|/ / |
|
| |
| |
| |
| |
| | |
object that has not yet been persisted. This behavior follows the
precedent set by update_columns.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
closes #8663.
When preloading a hmt association there two possible scenarios:
1.) preload with 2 queries: first hm association, then hmt with id IN ()
2.) preload with join: hmt association is loaded with a join on the hm association
The bug was happening in scenario 1.) with a normal order clause on the hmt association.
The ordering was also applied when loading the hm association, which resulted in the error.
This patch only applies the ordering the the hm-relation if we are performing a join (2).
Otherwise the order will only appear in the second query (1).
|
|\ \
| | |
| | | |
remove config.auto_explain_threshold_in_seconds
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We discussed that the auto explain feature is rarely used.
This PR removes only the automatic explain. You can still display
the explain output for any given relation using `ActiveRecord::Relation#explain`.
As a side-effect this should also fix the connection problem during
asset compilation (#9385). The auto explain initializer in the `ActiveRecord::Railtie`
forced a connection.
|
|/ /
| |
| |
| |
| |
| | |
We should only type cast when we need to use.
Related to 4b005fb371c2e7af80df7da63be94509b1db038c
|