aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Fixing tests and re-locating error checking.schneems2016-01-085-16/+17
|
* Fix kwarg to not have circular dependencyschneems2016-01-081-1/+1
|
* Use hash like syntax for InternalMetadataschneems2016-01-086-14/+12
| | | | Discussion: https://github.com/rails/rails/pull/22967#discussion_r49137035
* Add EnvironmentMismatchErrorschneems2016-01-082-4/+25
| | | Raise an error when a destructive action is made on a database where the current environment is different from the environment stored in the database.
* Use `key` as primary key in schema.schneems2016-01-081-1/+1
|
* [ci skip] Add comment to remove silenced code.schneems2016-01-071-0/+1
|
* Prevent destructive action on production databaseschneems2016-01-0716-14/+232
| | | | | | | This PR introduces a key/value type store to Active Record that can be used for storing internal values. It is an alternative implementation to #21237 cc @sgrif @matthewd. It is possible to run your tests against your production database by accident right now. While infrequently, but as an anecdotal data point, Heroku receives a non-trivial number of requests for a database restore due to this happening. In these cases the loss can be large. To prevent against running tests against production we can store the "environment" version that was used when migrating the database in a new internal table. Before executing tests we can see if the database is a listed in `protected_environments` and abort. There is a manual escape valve to force this check from happening with environment variable `DISABLE_DATABASE_ENVIRONMENT_CHECK=1`.
* Merge branch 'remove-test-case'eileencodes2015-12-159-52/+64
|\
| * Run railties generated app tests in test enveileencodes2015-12-151-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Running railties generated app tests in development env can cause unintended consequences. The environments are different and tests aren't meant to be run in development mode. The changes to the generator exposed this issue where the random test order in the generated apps could cause problems when those tests are run in development mode. Particularly we saw failures in `railties/test/application/rake_test.rb` generated apps that used the scaffold to create applications and then run the migration and immediately run the tests. The error we saw was `ActiveRecord::RecordNotFound: Couldn't find User with 'id'=980190962` and seemed to only occur if the destroy test ran first. I'm not entirely sure _why_ this causes that error to be thrown but I believe it is related to the environments being different.
| * Update test generators to use ActionDispatch::IntegrationTestAbdelkader Boudih2015-12-158-49/+61
|/ | | | | | | | | | | | In Rails 5.1 `ActionController::TestCase` will be moved out of Rails into it's own gem. Please use `ActionDispatch::IntegrationTest` going forward. This changes the generators to use `ActionDispatch::IntegrationTest` and the required URL setup (rather than symbols) for each of the controller actions. Updated fix to #22076.
* Do not default to any SerializerSantiago Pastorino2015-12-153-8/+2
| | | | We will wait until 5.1 to make a decision
* Merge pull request #22562 from sblackstone/masterJeremy Daer2015-12-152-2/+9
|\ | | | | Allow users to pass flags from database.yml
| * Allow users to pass flags from database.ymlStephen Blackstone2015-12-152-2/+9
| | | | | | | | | | | | Fix white-space Add test case demonstrating flags are received by the adapter
* | Merge pull request #14212 from tylerhunt/fix-token-regexSean Griffin2015-12-152-1/+9
|\ \ | | | | | | | | | Handle tab in token authentication header.
| * | Handle tab in token authentication header.Tyler Hunt2014-02-262-1/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The HTTP spec allows for LWS to precede the header content, which could include multiple SP and HT characters. Update the regex used to match the Token authorization header to account for this, instead of matching on a single SP. See http://www.w3.org/Protocols/rfc2616/rfc2616-sec2.html and http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html for the relevant parts of the specification.
* | | Remove warning of shadowing variableRafael Mendonça França2015-12-151-1/+1
| | |
* | | Merge pull request #22596 from y-yagi/remove_extra_space_from_deprecation_msgEileen M. Uchitelle2015-12-152-2/+5
|\ \ \ | | | | | | | | remove extra spaces from deprecation message
| * | | remove extra spaces from deprecation messageyuuji.yaginuma2015-12-152-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ``` # before DEPRECATION WARNING: Time columns will become time zone aware in Rails 5.1. This still causes `String`s to be parsed as if they were in `Time.zone`, and `Time`s to be converted to `Time.zone`. To keep the old behavior, you must add the following to your initializer: config.active_record.time_zone_aware_types = [:datetime] To silence this deprecation warning, add the following: config.active_record.time_zone_aware_types << :time ``` ``` # after DEPRECATION WARNING: Time columns will become time zone aware in Rails 5.1. This still causes `String`s to be parsed as if they were in `Time.zone`, and `Time`s to be converted to `Time.zone`. To keep the old behavior, you must add the following to your initializer: config.active_record.time_zone_aware_types = [:datetime] To silence this deprecation warning, add the following: config.active_record.time_zone_aware_types << :time ```
* | | | Merge pull request #22595 from sstephenson/fragment_cache_keyDavid Heinemeier Hansson2015-12-154-11/+77
|\ \ \ \ | | | | | | | | | | Controller-wide fragment cache key prefixes
| * | | | Add fragment_cache_key macro for controller-wide fragment cache key prefixesSam Stephenson2015-12-142-3/+67
| | | | |
| * | | | Remove ActionView::Helpers::CacheHelper#fragment_cache_keySam Stephenson2015-12-143-8/+10
| |/ / / | | | | | | | | | | | | | | | | | | | | Introduced in e56c63542780fe2fb804636a875f95cae08ab3f4, `CacheHelper#fragment_cache_key` is a duplicate of `ActionController::Caching::Fragments#fragment_cache_key`. We now require the view to provide this method on its own (as with `view_cache_dependencies`); `ActionController::Caching::Fragments` exports its version as a `helper_method`.
* | | | Merge pull request #21538 from matthewd/migration-versionMatthew Draper2015-12-1557-136/+226
|\ \ \ \ | | | | | | | | | | Add migration versioning via Migration subclasses
| * | | | Use a real migration version number in docsMatthew Draper2015-12-159-54/+54
| | | | | | | | | | | | | | | | | | | | | | | | | Even though this means more things to change when we bump after a release, it's more important that our examples are directly copyable.
| * | | | Schema uses current migration APIMatthew Draper2015-12-151-1/+1
| | | | |
| * | | | In 4.2 migrations, `timestamps` defaulted to `null: true`Matthew Draper2015-12-151-0/+24
| | | | | | | | | | | | | | | | | | | | | | | | | .. it also showed a deprecation warning, but we obviously needn't retain that.
| * | | | Find the delegate, even in a deeper inheritance treeMatthew Draper2015-12-151-1/+5
| | | | |
| * | | | Internal test migrations use the private 'Current' versionMatthew Draper2015-12-1540-64/+64
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Apart from specific versioning support, our tests should focus on the behaviour of whatever version they're accompanying, regardless of when they were written. Application code should *not* do this.
| * | | | Ensure generated migrations include a version numberMatthew Draper2015-12-153-14/+14
| | | | |
| * | | | Use a deliberately-invalid migration version in all doc examplesMatthew Draper2015-12-159-54/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If we use a real version, at best that'll be an onerous update required for each release; at worst, it will encourage users to write new migrations against an older version than they're using. The other option would be to leave these bare, without any version specifier. But as that's just a variant spelling of "4.2", it would seem to raise the same concerns as above.
| * | | | Add migration versioning via Migration subclassesMatthew Draper2015-12-155-2/+64
|/ / / /
* | | | Ensure uuid-ossp extension is present before we rely on itMatthew Draper2015-12-151-0/+2
| | | |
* | | | Fix travis matrixRafael Mendonça França2015-12-141-1/+1
| | | |
* | | | Add ruby-head back in the allow failures groupRafael Mendonça França2015-12-141-0/+1
|/ / / | | | | | | | | | Travis still don't have a updated version
* | | Do now allow failures with Ruby 2.3 anymoreRafael Mendonça França2015-12-141-2/+0
| | |
* | | Test with Ruby 2.3.0Rafael Mendonça França2015-12-141-0/+1
| | |
* | | Merge pull request #22564 from maximeg/legit_name_errorsSean Griffin2015-12-142-2/+45
|\ \ \ | | | | | | | | Don't catch all NameError to reraise as ActionController::RoutingError
| * | | Don't catch all NameError to reraise as ActionController::RoutingError #22368Maxime Garcia2015-12-122-2/+45
| | |/ | |/|
* | | Revert "Perform a more efficient query in `Relation#any?`"Sean Griffin2015-12-143-8/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 6d5b1fdf55611de2a1071c37544933bb588ae88e. `eager_load` and `references` can include hashes, which won't match up with `references` A test case has been added to demonstrate the problem
* | | Merge pull request #22561 from Cleggameg/patch-2Rafael Mendonça França2015-12-141-2/+2
|\ \ \ | | | | | | | | | | | | Update seeds.rb.tt
| * | | Update seeds.rb.ttPaul Clegg2015-12-141-2/+2
|/ / / | | | | | | | | | Rahm Emanuel doesn't deserve to be in Rails.
* | | Merge pull request #22395 from avokhmin/becomes-errors-base-2Sean Griffin2015-12-144-2/+43
|\ \ \ | | | | | | | | `ActiveRecord::Base#becomes` should copy the errors
| * | | `ActiveRecord::Base#becomes` should copy the errorsVokhmin Alexey V2015-12-144-2/+43
| | | |
* | | | Perform a more efficient query in `Relation#any?`Sean Griffin2015-12-142-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This was changed in 421c81b, as `exists?` blows up if you are eager loading a polymorphic association, as it'll try to construct a join to that table. The previous change decided to execute a `count` instead, which wouldn't join. Of course, the only time we actually need to perform a join on the eager loaded values (which would perform a left outer join) is if they're being referenced in the where clause. This doesn't affect inner joins.
* | | | Merge pull request #22582 from sikachu/hwia-to_hKasper Timm Hansen2015-12-142-9/+11
|\ \ \ \ | | | | | | | | | | Make Parameters#to_h and #to_unsafe_h return HWIA
| * | | | Make Parameters#to_h and #to_unsafe_h return HWIAPrem Sichanugrist2015-12-142-9/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This makes these two methods to be more inline with the previous behavior of Parameters as Parameters used to be inherited from HWIA. Fixes #21391
* | | | | Fix test failures caused by 574f255Sean Griffin2015-12-141-1/+1
| |/ / / |/| | | | | | | | | | | | | | | There was a test remaining for PG only that was checking for an exact limit clause
* | | | Use a bind param for `LIMIT` and `OFFSET`Sean Griffin2015-12-145-13/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We currently generate an unbounded number of prepared statements when `limit` or `offset` are called with a dynamic argument. This changes `LIMIT` and `OFFSET` to use bind params, eliminating the problem. `Type::Value#hash` needed to be implemented, as it turns out we busted the query cache if the type object used wasn't exactly the same object. This drops support for passing an `Arel::Nodes::SqlLiteral` to `limit`. Doing this relied on AR internals, and was never officially supported usage. Fixes #22250.
* | | | Deprecate limit strings with commasSean Griffin2015-12-142-3/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some backends allow `LIMIT 1,2` as a shorthand for `LIMIT 1 OFFSET 2`. Supporting this in Active Record massively complicates using bind parameters for limit and offset, and it's trivially easy to build an invalid SQL query by also calling `offset` on the same `Relation`. This is a niche syntax that is only supported by a few adapters, and can be trivially worked around by calling offset explicitly.
* | | | Merge pull request #22463 from tjblonsk/add_bug_report_to_contributing_mdSean Griffin2015-12-141-7/+33
|\ \ \ \ | | | | | | | | | | Add specific bug reporting guidelines to contributing.md [ci skip]
| * | | | Add specific bug reporting guidelines to contributing.md. [ci skip]Tim2015-12-111-7/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add boldface and bullets to make more readable. Make sentences declarative. Remove "you"s.