aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/CHANGELOG.md
Commit message (Collapse)AuthorAgeFilesLines
* Add missing credit [ci skip]Ryuta Kamizono2017-03-101-0/+2
|
* Merge pull request #28351 from kamipo/deprecate_schema_migrations_table_nameRafael Mendonça França2017-03-091-0/+4
|\ | | | | | | Deprecate `Migrator.schema_migrations_table_name`
| * Deprecate `Migrator.schema_migrations_table_name`Ryuta Kamizono2017-03-091-0/+4
| | | | | | | | | | Since 67fba0cf `SchemaMigration` model was extracted. Use `SchemaMigration.table_name` instead.
* | Fix select with block doesn't return newly built records in has_many associationRyuta Kamizono2017-03-091-0/+6
|/ | | | | | | | The `select` in `QueryMethods` is also an enumerable method. Enumerable methods with block should delegate to `records` on `CollectionProxy`, not `scope`. Fixes #28348.
* Check whether `Rails.application` defined before calling itAndrew White2017-03-071-0/+10
| | | | | | | | | | In #27674 we changed the migration generator to generate migrations at the path defined in `Rails.application.config.paths` however the code checked for the presence of the `Rails` constant but not the `Rails.application` method which caused problems when using Active Record and generators outside of the context of a Rails application. Fixes #28325.
* Fix `deserialize` with JSON arrayRyuta Kamizono2017-03-061-0/+6
| | | | Fixes #28285.
* Fix `rake db:schema:load` with subdirectoriesRyuta Kamizono2017-03-051-0/+4
| | | | | | | | Related #25174. `db:schema:load` doesn't work with subdirectories like previous `db:migrate:status`. `Migrator.migration_files` should be used in `assume_migrated_upto_version` to fix the issue.
* Fix `rake db:migrate:status` with subdirectoriesRyuta Kamizono2017-03-041-0/+4
| | | | | | | | | | | | `db:migrate` supports subdirectories and have a test. https://github.com/rails/rails/blob/v5.1.0.beta1/activerecord/test/cases/migrator_test.rb#L78-L85 But `db:migrate:status` doesn't work with subdirectories. It is due to `Dir.foreach(path)` is not the same with `Dir["#{path}/**/[0-9]*_*.rb"]`. I extracted `migration_files` and sharing it in the both to fix the issue. And added tests for `db:migrate:status`.
* [ci skip] Add CHANGELOG entry for #28282Andrew White2017-03-041-0/+10
|
* Use `max_identifier_length` for `index_name_length` in PostgreSQL adapterRyuta Kamizono2017-02-271-0/+4
| | | | | Actually `index_name_length` depend on `max_identifier_length`, not always 63.
* Deprecate `supports_migrations?` on connection adaptersRyuta Kamizono2017-02-271-0/+4
| | | | | | | `supports_migrations?` was added at 4160b518 to determine if schema statements (`create_table`, `drop_table`, etc) are implemented in the adapter. But all tested databases has been supported migrations since a4fc93c3 at least.
* [ci skip] Add CHANGELOG entry for #28183Andrew White2017-02-261-0/+4
|
* Deprecate using `#quoted_id` in quotingRyuta Kamizono2017-02-241-0/+4
| | | | | Originally `quoted_id` was used in legacy quoting mechanism. Now we use type casting mechanism for that. Let's deprecate `quoted_id`.
* Fix `wait_timeout` to configurable for mysql2 adapterRyuta Kamizono2017-02-241-0/+7
| | | | Fixes #26556.
* Preparing for 5.1.0.beta1 releaseRafael Mendonça França2017-02-231-0/+2
|
* Correctly dump native timestamp types for MySQLRyuta Kamizono2017-02-231-0/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The native timestamp type in MySQL is different from datetime type. Internal representation of the timestamp type is UNIX time, This means that timestamp columns are affected by time zone. ``` > SET time_zone = '+00:00'; Query OK, 0 rows affected (0.00 sec) > INSERT INTO time_with_zone(ts,dt) VALUES (NOW(),NOW()); Query OK, 1 row affected (0.02 sec) > SELECT * FROM time_with_zone; +---------------------+---------------------+ | ts | dt | +---------------------+---------------------+ | 2016-02-07 22:11:44 | 2016-02-07 22:11:44 | +---------------------+---------------------+ 1 row in set (0.00 sec) > SET time_zone = '-08:00'; Query OK, 0 rows affected (0.00 sec) > SELECT * FROM time_with_zone; +---------------------+---------------------+ | ts | dt | +---------------------+---------------------+ | 2016-02-07 14:11:44 | 2016-02-07 22:11:44 | +---------------------+---------------------+ 1 row in set (0.00 sec) ```
* Merge pull request #28042 from kamipo/add_changelog_for_27384Rafael França2017-02-211-0/+4
|\ | | | | Add CHANGELOG entry for #27384 and #27762
| * Add CHANGELOG entry for #27384 and #27762Ryuta Kamizono2017-02-171-0/+4
| |
* | Add backticks around method namesJon Moss2017-02-211-1/+1
|/ | | | [ci skip]
* Omit redundant `using: :btree` for schema dumpingRyuta Kamizono2017-02-131-0/+4
|
* Deprecate passing `default` to `index_name_exists?`Ryuta Kamizono2017-02-131-3/+7
|
* Schema dumping support for PostgreSQL oid typeRyuta Kamizono2017-02-121-1/+1
| | | | Closes #27980
* Schema dumping support for PostgreSQL interval typeRyuta Kamizono2017-02-121-0/+4
| | | | Closes #27979
* Deprecate `supports_primary_key?`Ryuta Kamizono2017-02-121-0/+5
| | | | | | | | | | | | `supports_primary_key?` was added to determine if `primary_key` is implemented in the adapter in f060221. But we already use `primary_key` without `supports_primary_key?` (207f266, 5f3cf42) and using `supports_primary_key?` has been removed in #1318. This means that `supports_primary_key?` is no longer used in the internal and Active Record doesn't work without `primary_key` is implemented (all adapters must implement `primary_key`). Closes #27977
* Make `table_name=` reset current statement cachenamusyaka2017-02-121-0/+5
| | | | | | So queries are not run against the previous table name. Closes #27953
* Merge pull request #27945 from betesh/allow-frozen-hashes-to-as_jsonRafael Mendonça França2017-02-081-0/+4
|\ | | | | | | Allow ActiveRecord::Base.as_json to accept a frozen Hash
| * Allow ActiveRecord::Base.as_json to accept a frozen HashIsaac Betesh2017-02-081-0/+4
| |
* | Fix inspection behavior when the :id column is not primary keynamusyaka2017-02-091-0/+4
|/
* Merge pull request #25873 from schuetzm/warn_about_dirty_lockRafael Mendonça França2017-02-071-0/+4
|\ | | | | | | Deprecate locking of dirty records
| * Deprecate locking of dirty recordsMarc Schütz2017-02-071-0/+4
| |
* | Remove deprecated behavior that halts callbacks when the return is falseRafael Mendonça França2017-02-071-0/+4
|/
* Deprecate `ColumnDumper#migration_keys`Ryuta Kamizono2017-02-071-0/+4
| | | | | | `ColumnDumper#migration_keys` was extracted to customize keys for standardized column arguments widths. But the feature was removed in df84e98. The internal method is no longer used for that.
* Correct spellingBenjamin Fleischer2017-02-051-1/+1
| | | | | | | ``` go get -u github.com/client9/misspell/cmd/misspell misspell -w -error -source=text . ```
* Fix collection_singular_ids= bugDaniel Colson2017-02-021-0/+6
| | | | | | | | | When the association's primary key is manually set as a symbol and called with an array of strings, CollectionAssociation#ids_writer fails to cast the ids to integers. This is because AssociationReflection#association_primary_key_type and ThroughReflection#association_primary_key_type return the incorrect type, since ModelSchema.type_for_attribute only accepts a string. The result is an ActiveRecord::RecordNotFound error.
* Virtual/generated column support for MySQL 5.7.5+ and MariaDB 5.2.0+Ryuta Kamizono2017-02-011-0/+19
| | | | | | | | | | | | | | | | | | | MySQL generated columns: https://dev.mysql.com/doc/refman/5.7/en/create-table-generated-columns.html MariaDB virtual columns: https://mariadb.com/kb/en/mariadb/virtual-computed-columns/ Declare virtual columns with `t.virtual name, type: …, as: "expression"`. Pass `stored: true` to persist the generated value (false by default). Example: create_table :generated_columns do |t| t.string :name t.virtual :upper_name, type: :string, as: "UPPER(name)" t.virtual :name_length, type: :integer, as: "LENGTH(name)", stored: true t.index :name_length # May be indexed, too! end Closes #22589
* Deprecate `initialize_schema_migrations_table` and ↵Ryuta Kamizono2017-01-201-0/+4
| | | | | | `initialize_internal_metadata_table` These internal initialize methods are no longer used internally.
* Revert "Merge pull request #27718 from kamipo/remove_internal_public_methods"Matthew Draper2017-01-201-5/+0
| | | | | This reverts commit 39c77eb1843f79925c7195e8869afc7cb7323682, reversing changes made to 9f6f51be78f8807e18fc6562c57af2fdbf8ccb56.
* Add CHANGELOG entry for #24743Ryuta Kamizono2017-01-191-2/+6
|
* Remove `initialize_schema_migrations_table` and ↵Ryuta Kamizono2017-01-181-5/+10
| | | | | | | | | | | | `initialize_internal_metadata_table` internal public methods These internal methods accidentally appeared in the doc, and so almost useless. It is enough to create these internal tables directly, and indeed do so in several places. https://github.com/rails/rails/blob/v5.0.1/activerecord/lib/active_record/schema.rb#L55 https://github.com/rails/rails/blob/v5.0.1/activerecord/lib/active_record/railties/databases.rake#L6 https://github.com/rails/rails/blob/v5.0.1/activerecord/lib/active_record/tasks/database_tasks.rb#L230
* Generate migrations at path set by `config.paths["db/migrate"]`Kevin Glowacz2017-01-161-0/+4
|
* Add CHANGELOG entry for #27701Andrew White2017-01-161-0/+4
|
* Add the touch option to ActiveRecord#increment! and decrement!akihiro172017-01-141-0/+4
| | | | | Supports the `touch` option from update_counters. The default behavior is not to update timestamp columns.
* Deprecate reflection class name to accept a classKir Shatrov2017-01-091-0/+5
| | | | | | | | The idea of `class_name` as an option of reflection is that passing a string would allow us to lazy autoload the class. Using `belongs_to :client, class_name: Customer` is eagerloading models more than necessary and creating possible circular dependencies.
* Raise error when has_many through is defined before through associationChris Holmes2017-01-041-0/+6
| | | | | | | https://github.com/rails/rails/issues/26834 This change raises an error if a has_many through association is defined before the through association.
* Merge pull request #26689 from kamipo/deprecate_passing_name_to_indexesRafael Mendonça França2017-01-031-1/+5
|\ | | | | | | Deprecate passing `name` to `indexes` like `tables`
| * Deprecate passing `name` to `indexes` like `tables`Ryuta Kamizono2017-01-041-1/+5
| | | | | | | | | | Passing `name` to `tables` is already deprecated at #21601. Passing `name` to `indexes` is also unused.
* | Remove deprecation of using ActiveRecord::Base instance in .updateRafael Mendonça França2017-01-031-2/+2
| |
* | Remove deprecated db:test:clone* tasksRafael Mendonça França2017-01-031-0/+4
| |
* | Rephrase CHANGELOG.md entryJon Moss2017-01-031-1/+1
|/ | | | | | Rephrase entry with better sounding English. [ci skip]
* Compare deserialized values for `PostgreSQL::OID::Hstore` typesJon Moss2017-01-031-0/+7
| | | | | | | | | | | | | Per the regression commit below, the commit changes the behavior of `#changed?`to consult the `#changed_in_place?` method on `Type::Value` classes. Per this change, `PostgreSQL::OID::Hstore` needs to override this method in order to compare the deserialized forms of the two arguments. In Ruby, two hashes are considered equal even if their key order is different. This commit helps to bring that behavior to `Hstore` values. Fixes regression introduced by 8e633e505880755e7e366ccec2210bbe2b5436e7 Fixes #27502