aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record
Commit message (Collapse)AuthorAgeFilesLines
* rename sequence only if it existsAbdelkader Boudih2014-06-271-3/+3
|
* Merge pull request #12450 from iantropov/masterRafael Mendonça França2014-06-273-5/+16
|\ | | | | | | | | | | | | | | | | Fix bug, when ':dependent => :destroy' violates foreign key constraints Conflicts: activerecord/CHANGELOG.md activerecord/lib/active_record/associations/builder/association.rb activerecord/lib/active_record/associations/builder/has_one.rb
| * Fix bug, when ':dependent => :destroy' option violates foreign key ↵Ivan Antropov2013-10-263-9/+18
| | | | | | | | constraints, issue #12380
* | Merge pull request #15788 from sgrif/sg-mutable-stringsRafael Mendonça França2014-06-271-1/+16
|\ \ | | | | | | | | | Detect in-place modifications on Strings
| * | Detect in-place modifications on StringsSean Griffin2014-06-171-1/+16
| | |
* | | Merge pull request #8639 from bogdan/valid-with-bangRafael Mendonça França2014-06-271-1/+17
|\ \ \ | | | | | | | | | | | | Add AR::Base#valid! method
| * | | Add AR::Base#validate! methodBogdan Gusiev2014-06-231-1/+17
| | | | | | | | | | | | | | | | | | | | Acts same as valid? but raises AR::RecordInvalid exception if validation fails
* | | | Merge pull request #15940 from DNNX/databases-rake-refactoringRafael Mendonça França2014-06-273-31/+37
|\ \ \ \ | | | | | | | | | | databases.rake refactoring
| * | | | Use AR::SchemaMigration.table_exists? call instead of longish AR::Base...etc,etcViktar Basharymau2014-06-271-1/+1
| | | | |
| * | | | Extract AR::SchemaMigration.normalized_versions methodViktar Basharymau2014-06-272-2/+5
| | | | |
| * | | | db:migrate:status refactoring: Rewrite hand-crafted SQL query with ↵Viktar Basharymau2014-06-271-1/+1
| | | | | | | | | | | | | | | | | | | | ActiveRecord#pluck
| * | | | Use Array#flat_map and Array#grep in db:migrate:status taskViktar Basharymau2014-06-271-10/+10
| | | | | | | | | | | | | | | | | | | | It allows the code to be more declarative and elegant.
| * | | | Add explaining variables to db:migrate:statusViktar Basharymau2014-06-271-2/+2
| | | | |
| * | | | Replace String index juggling with Pathname goodness in db:fixtures:loadViktar Basharymau2014-06-271-1/+1
| | | | |
| * | | | db:fixtures:load refactoring: remove unnecessary loopViktar Basharymau2014-06-271-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | `ActiveRecord::FixtureSet.create_fixtures` can accept an array of fixture_files.
| * | | | Extract `fixture_files` variable in fixtures:load rake taskViktar Basharymau2014-06-271-1/+7
| | | | |
| * | | | Replace a bit of cryptic code in fixtures:load rake task with plain stupid RubyViktar Basharymau2014-06-271-1/+5
| | | | |
| * | | | Get rid of duplication in db:fixtures:{identify,load}Viktar Basharymau2014-06-272-12/+7
| | | | |
| * | | | db:fixtures:{identify,load} tasks respect AR::Tasks::DatabaseTasks.rootViktar Basharymau2014-06-271-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before this commit, if `ENV['FIXTURES_PATH']` was set, then `Rails.root` was used, otherwise the app used `ActiveRecord::Tasks::DatabaseTasks.root`. Now it is consistent.
| * | | | Simplify complex code in databases.rakeViktar Basharymau2014-06-271-2/+2
| | | | |
* | | | | Stop using instance exec for type decoratorsSean Griffin & Sean Doyle2014-06-273-17/+38
|/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | We are moving this behavior out to an object that we would like to keep separated from `ActiveRecord::Base`, which means not passing the class object to it. As such, we need to stop using `instance_exec`, and instead close over the subclass on global type decorators that are applied in `Base`.
* | | | Change method visibilityRafael Mendonça França2014-06-261-2/+2
| | | |
* | | | Add nodoc to internal class [ci skip]Rafael Mendonça França2014-06-261-1/+1
| | | |
* | | | fk: add docsYves Senn2014-06-261-0/+58
| | | |
* | | | fk: review corrections: indent, visibility, syntax, wording.Yves Senn2014-06-265-52/+53
| | | |
* | | | fk: use random digest namesYves Senn2014-06-264-13/+36
| | | | | | | | | | | | | | | | | | | | | | | | The name of the foreign key is not relevant from a users perspective. Using random names resolves the urge to rename the foreign key when the respective table or column is renamed.
* | | | fk: raise for invalid :on_update / :on_delete valuesYves Senn2014-06-261-3/+8
| | | |
* | | | fk: `add/remove_foreign_key` are noop for adapters that don't support fkYves Senn2014-06-261-0/+4
| | | |
* | | | fk: dump foreign keys at the bottom to make sure tables exist.Yves Senn2014-06-261-6/+9
| | | |
* | | | fk: raise when identifiers are longer than `allowed_index_name_length`.Yves Senn2014-06-261-1/+5
| | | |
* | | | fk: support for on_updateYves Senn2014-06-266-16/+33
| | | |
* | | | fk: rename `dependent` to `on_delete`Yves Senn2014-06-266-14/+13
| | | |
* | | | fk: infere column name from table names.Yves Senn2014-06-262-5/+17
| | | | | | | | | | | | | | | | This allows to create and remove foreign keys without specifying a column.
* | | | fk: make `add_foreign_key` reversible.Yves Senn2014-06-261-1/+16
| | | |
* | | | fk: support dependent option (:delete, :nullify and :restrict).Yves Senn2014-06-266-4/+41
| | | |
* | | | fk: dump foreign keys to schema.rbYves Senn2014-06-262-1/+25
| | | | | | | | | | | | | | | | respect `table_name_prefix` and `table_name_suffix`.
* | | | fk: `:primary_key` option for non-standard pk's.Yves Senn2014-06-261-1/+3
| | | |
* | | | fk: generalize using `AlterTable` and `SchemaCreation`.Yves Senn2014-06-265-47/+60
| | | |
* | | | fk: `foreign_keys`, `add_foreign_key` and `remove_foreign_key` for MySQLYves Senn2014-06-265-21/+65
| | | |
* | | | fk: add `foreign_keys` for PostgreSQL adapter.Yves Senn2014-06-262-0/+38
| | | |
* | | | fk: `add_foreign_key` and `remove_foreign_key` for PostgreSQL adapter.Yves Senn2014-06-263-0/+36
| | | |
* | | | Move writing unknown column exception to null attributeSean Griffin2014-06-265-11/+9
| | | | | | | | | | | | | | | | | | | | | | | | Making this change revealed several subtle bugs related to models with no primary key, and anonymous classes. These have been fixed as well, with regression tests added.
* | | | Deprecate automatic counter caches on has_many :throughSean Griffin2014-06-262-1/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reliant on https://github.com/rails/rails/pull/15747 but pulled to a separate PR to reduce noise. `has_many :through` associations have the undocumented behavior of automatically detecting counter caches. However, the way in which it does so is inconsistent with counter caches everywhere else, and doesn't actually work consistently. As with normal `has_many` associations, the user should specify the counter cache on the `belongs_to`, if they'd like it updated.
* | | | `Attribute` should know about its nameSean Griffin2014-06-263-32/+36
| | | | | | | | | | | | | | | | | | | | This allows using polymorphism for the uninitialized attributes raising an exception behavior.
* | | | Encapsulate the creation of `Attribute` objectsSean Griffin2014-06-265-18/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This will make it less painful to add additional properties, which should persist across writes, such as `name`. Conflicts: activerecord/lib/active_record/attribute_set.rb
* | | | Merge pull request #15868 from sgrif/sg-uninitialized-attributesRafael Mendonça França2014-06-264-27/+87
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Move behavior of `read_attribute` to `AttributeSet` Conflicts: activerecord/lib/active_record/attribute_set.rb activerecord/test/cases/attribute_set_test.rb
| * | | | Move behavior of `read_attribute` to `AttributeSet`Sean Griffin2014-06-254-27/+87
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Moved `Builder` to its own file, as it started looking very weird once I added private methods to the `AttributeSet` class and the `Builder` class started to grow. Would like to refactor `fetch_value` to change to ```ruby self[name].value(&block) ``` But that requires the attributes to know about their name, which they currently do not.
* | | | | Merge pull request #15847 from sgrif/sg-encapsulate-result-typesRafael Mendonça França2014-06-264-24/+19
|\ \ \ \ \ | | | | | | | | | | | | Encapsulate knowledge of type objects on `ActiveRecord::Result`
| * | | | | Encapsulate knowledge of type objects on `ActiveRecord::Result`Sean Griffin2014-06-224-24/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Attempting to reduce the number of places that care about the details of how type casting occurs. We remove the type casting of the primary key in `JoinDependecy`, rather than encapsulating it. It was originally added for consistency with https://github.com/rails/rails/commit/40898c8c19fa04442fc5f8fb5daf3a8bdb9a1e03#diff-06059df8d3dee3101718fb2c01151ad0R211, but that conditional was later removed in https://github.com/rails/rails/commit/d7ddaa530fd1b94e22d745cbaf2e8a5a34ee9734. What is important is that the same row twice will have the same value for the primary key, which it will.
* | | | | | Merge pull request #15846 from sgrif/sg-attributes-before-type-castRafael Mendonça França2014-06-262-2/+6
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Move `attributes_before_type_cast` to `AttributeSet` Conflicts: activerecord/lib/active_record/attribute_set.rb activerecord/test/cases/attribute_set_test.rb