- 04 1月, 2019 1 次提交
-
-
由 Alberto Almagro 提交于
This reverts commit 89b4612f.
-
- 03 1月, 2019 1 次提交
-
-
由 Vladimir Dementyev 提交于
-
- 02 1月, 2019 4 次提交
-
-
由 Ryuta Kamizono 提交于
Since the `current_role` is public API.
-
由 Ryuta Kamizono 提交于
Since the `preventing_writes?` is public API.
-
由 Ryuta Kamizono 提交于
That ability was introduced at #11898 as `Relation#update` without giving ids, so the ability on the class level is not documented and not tested. c83e30da which fixes #33470 has lost two undocumented abilities. One has fixed at 5c656889, but I missed the ability on the class level. Removing any feature should not be suddenly happened in a stable version even if that is not documented. I've restored the ability and added test case to avoid any regression in the future. Fixes #34743.
-
由 Ryuta Kamizono 提交于
This reverts 27c6c071 since `arel_attr.to_s` is not right way to avoid the type error. That to_s returns `"#<struct Arel::Attributes::Attribute ...>"`, there is no reason to match the regex to the inspect form. And also, the regex path is not covered by our test cases. I've tweaked the regex for redundant part and added assertions for the regex path.
-
- 28 12月, 2018 2 次提交
-
-
由 Ryuta Kamizono 提交于
Since #31727, `migrations_paths` in `assume_migrated_upto_version` is no longer used.
-
- 23 12月, 2018 1 次提交
-
-
由 Yasuo Honda 提交于
Rails 6 requires Ruby 2.5, which introduces `FrozenError` https://docs.ruby-lang.org/en/2.5.0/NEWS.html Related to #31520
-
- 22 12月, 2018 1 次提交
-
-
由 Eileen Uchitelle 提交于
If you try to call `connected_to` with a role that doesn't have an established connection you used to get an error that said: ``` >> ActiveRecord::Base.connected_to(role: :i_dont_exist) { Home.first } ActiveRecord::ConnectionNotEstablished Exception: No connection pool with 'primary' found. ``` This is confusing because the connection could be established but we spelled the role wrong. I've changed this to raise if the `role` used in `connected_to` doesn't have an associated handler. Users who encounter this should either check that the role is spelled correctly (writin -> writing), establish a connection to that role in the model with connects_to, or use the `database` keyword for the `role`. I think this will provide a less confusing error message for those starting out with multiple databases.
-
- 21 12月, 2018 3 次提交
-
-
由 Ryuta Kamizono 提交于
Currently we sometimes find a redundant begin block in code review (e.g. https://github.com/rails/rails/pull/33604#discussion_r209784205). I'd like to enable `Style/RedundantBegin` cop to avoid that, since rescue/else/ensure are allowed inside do/end blocks in Ruby 2.5 (https://bugs.ruby-lang.org/issues/12906), so we'd probably meets with that situation than before.
-
-
-
- 19 12月, 2018 1 次提交
-
-
由 Ryuta Kamizono 提交于
Since MySQL 5.7.9, the `innodb_default_row_format` option defines the default row format for InnoDB tables. The default setting is `DYNAMIC`. The row format is required for indexing on `varchar(255)` with `utf8mb4` columns. As long as using MySQL 5.6, CI won't be passed even if MySQL server setting is properly configured the same as MySQL 5.7 (`innodb_file_per_table = 1`, `innodb_file_format = 'Barracuda'`, and `innodb_large_prefix = 1`) since InnoDB table is created as the row format `COMPACT` by default on MySQL 5.6, therefore indexing on string with `utf8mb4` columns aren't succeeded. Making `ROW_FORMAT=DYNAMIC` create table option by default for legacy MySQL version would mitigate the indexing issue on the user side, and it makes CI would be passed on MySQL 5.6 which is configured properly.
-
- 18 12月, 2018 1 次提交
-
-
由 Ryuta Kamizono 提交于
-
- 13 12月, 2018 1 次提交
-
- 12 12月, 2018 2 次提交
-
-
由 Ryuta Kamizono 提交于
-
由 John Hawthorn 提交于
This can be used to check the currently connected role. It's meant to mirror AR::Base.connected_to
-
- 11 12月, 2018 5 次提交
-
-
由 Ryuta Kamizono 提交于
BEGIN transaction would cause COMMIT or ROLLBACK, so unless COMMIT and ROLLBACK aren't treated as write queries as well as BEGIN, the `ReadOnlyError` would be raised.
-
由 Ryuta Kamizono 提交于
-
由 Ryuta Kamizono 提交于
Otherwise `save` method would raise the `ReadOnlyError` against `BEGIN` and `ROLLBACK` queries.
-
由 Vinicius Stock 提交于
-
由 Ryuta Kamizono 提交于
Follow up #34505.
-
- 08 12月, 2018 1 次提交
-
-
由 Bogdan 提交于
* `#create_or_find_by/!`: add more tests * Fix docs of `create_or_find_by` This method uses `find_by!` internally.
-
- 07 12月, 2018 1 次提交
-
-
由 Eileen Uchitelle 提交于
I originally named this `StatementInvalid` because that's what we do in GitHub, but `@tenderlove` pointed out that this means apps can't test for or explitly rescue this error. `StatementInvalid` is pretty broad so I've renamed this to `ReadOnlyError`.
-
- 06 12月, 2018 1 次提交
-
-
由 Gannon McGibbon 提交于
-
- 05 12月, 2018 1 次提交
-
-
由 yuuji.yaginuma 提交于
Since bd623893, isolate test of `test_serialized_attribute_works_under_concurrent_initial_access` fails. ``` $ ./bin/test -w test/cases/serialized_attribute_test.rb -n test_serialized_attribute_works_under_concurrent_initial_access Using sqlite3 Run options: -n test_serialized_attribute_works_under_concurrent_initial_access --seed 32129 # Running: E Error: SerializedAttributeTest#test_serialized_attribute_works_under_concurrent_initial_access: ActiveRecord::StatementInvalid: SQLite3::SQLException: no such table: ``` If duplicate an unloaded model, it seems that method invocation for that class is not guaranteed. Use the original class to avoid it.
-
- 04 12月, 2018 3 次提交
-
-
由 Alfred Dominic 提交于
-
由 Ryuta Kamizono 提交于
Unlike the `Relation#delete_all`, `delete_all` on collection proxy doesn't return affected count. Since the `CollectionProxy` is a subclass of the `Relation`, this inconsistency is probably not intended, so it should return the count consistently.
-
由 Gannon McGibbon 提交于
Reset scope after delete on collection association to clear stale offsets of removed records.
-
- 03 12月, 2018 2 次提交
-
-
由 Abdallah Samman 提交于
-
-
- 30 11月, 2018 3 次提交
-
-
由 Eileen Uchitelle 提交于
This PR adds the ability to prevent writes to a database even if the database user is able to write (ie the database is a primary and not a replica). This is useful for a few reasons: 1) when converting your database from a single db to a primary/replica setup - you can fix all the writes on reads early on, 2) when we implement automatic database switching or when an app is manually switching connections this feature can be used to ensure reads are reading and writes are writing. We want to make sure we raise if we ever try to write in read mode, regardless of database type and 3) for local development if you don't want to set up multiple databases but do want to support rw/ro queries. This should be used in conjunction with `connected_to` in write mode. For example: ``` ActiveRecord::Base.connected_to(role: :writing) do Dog.connection.while_preventing_writes do Dog.create! # will raise because we're preventing writes end end ActiveRecord::Base.connected_to(role: :reading) do Dog.connection.while_preventing_writes do Dog.first # will not raise because we're not writing end end ```
-
由 Ryuta Kamizono 提交于
Follow up #33394. #33394 only fixes the case of scoping with klass methods in the scope block which invokes `klass.all`. Query methods in the scope block also need to invoke `klass.all` to be affected by the scoping.
-
由 Gannon McGibbon 提交于
Allow aliased attributes to be used in `#update_columns` and `#update`.
-
- 29 11月, 2018 2 次提交
-
-
由 Gannon McGibbon 提交于
-
由 Gannon McGibbon 提交于
Fixes issue where "user post" is misinterpreted as "\"user\".\"post\"" when quoting table names with the postgres adapter.
-
- 28 11月, 2018 2 次提交
-
-
由 Ryuta Kamizono 提交于
Follow up ba4e68f5.
-
由 Ryuta Kamizono 提交于
-
- 27 11月, 2018 1 次提交
-
-
由 DmitryTsepelev 提交于
-