aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/migration/command_recorder.rb
Commit message (Collapse)AuthorAgeFilesLines
* make change_column_comment and change_table_comment invertibleYoshiyuki Kinjo2019-04-151-1/+24
| | | | | | | | | We can revert migrations using `change_column_comment` or `change_table_comment` at current master. However, results are not what we expect: comments are remained in new status. This change tells previous comment to these methods in a way like `change_column_default`.
* Allow `remove_foreign_key` with both `to_table` and `options`Ryuta Kamizono2019-03-061-13/+4
| | | | | | | Foreign keys could be created to the same table. So `remove_foreign_key :from_table, :to_table` is sometimes ambiguous. This allows `remove_foreign_key` to remove the select one on the same table with giving both `to_table` and `options`.
* Fix `transaction` reverting for migrationsfatkodima2018-09-261-1/+18
| | | | [fatkodima & David Verhasselt]
* Allow `to_table` in `invert_remove_foreign_key`Rich2018-08-141-3/+16
| | | | | | | | | | | | remove_foreign_key supports - remove_foreign_key :accounts, :branches - remove_foreign_key :accounts, to_table: :branches but the second one is not reversible. This branch is to fix and allow second one to be reversible. [Nikolay Epifanov, Rich Chen]
* Remove usage of strip_heredoc in the framework in favor of <<~Rafael Mendonça França2018-02-161-1/+1
| | | | | Some places we can't remove because Ruby still don't have a method equivalent to strip_heredoc to be called in an already existent string.
* Merge pull request #30510 from yhirano55/add_nodoc_to_activerecordEileen M. Uchitelle2017-11-251-1/+1
|\ | | | | Add :nodoc: to activerecord [ci skip]
| * Add :nodoc: to activerecord [ci skip]Yoshiyuki Hirano2017-09-031-1/+1
| |
* | Use algorithm while removing index with db:rollbackMehmet Emin İNAÇ2017-09-211-2/+2
|/ | | | Closes #24190
* Use frozen-string-literal in ActiveRecordKir Shatrov2017-07-191-0/+2
|
* Revert "Merge pull request #29540 from kirs/rubocop-frozen-string"Matthew Draper2017-07-021-1/+0
| | | | | This reverts commit 3420a14590c0e6915d8b6c242887f74adb4120f9, reversing changes made to afb66a5a598ce4ac74ad84b125a5abf046dcf5aa.
* Enforce frozen string in RubocopKir Shatrov2017-07-011-0/+1
|
* `respond_to_missing?` should be privateRyuta Kamizono2017-04-221-6/+6
| | | | | | | Follow up of 03d3f036. Some of `respond_to?` were replaced to `respond_to_missing?` in 03d3f036. But the visibility is still public. It should be private.
* Fix broken comments indentation caused by rubocop auto-correct [ci skip]Ryuta Kamizono2016-09-141-1/+1
| | | | | | All indentation was normalized by rubocop auto-correct at 80e66cc4d90bf8c15d1a5f6e3152e90147f00772. But comments was still kept absolute position. This commit aligns comments with method definitions for consistency.
* Fix broken heredoc indentation caused by rubocop auto-correctRyuta Kamizono2016-09-031-4/+4
| | | | | | All indentation was normalized by rubocop auto-correct at 80e66cc4d90bf8c15d1a5f6e3152e90147f00772. But heredocs was still kept absolute position. This commit aligns heredocs indentation for consistency.
* Override `respond_to_missing?` instead of `respond_to?` when possibleSean Griffin2016-08-311-1/+1
| | | | | | | | | | This was almost every case where we are overriding `respond_to?` in a way that mirrors a parallel implementation of `method_missing`. There is one remaining case in Active Model that should probably do the same thing, but had a sufficiently strange implementation that I want to investigate it separately. Fixes #26333.
* normalizes indentation and whitespace across the projectXavier Noria2016-08-061-88/+88
|
* adding basic change_column and remove_columns in CommandRecorder ↵Gaurav Sharma2015-09-291-0/+2
| | | | documentations [ci skip]
* Merge pull request #21412 from yui-knk/feature/irreversible_migration_error_msgYves Senn2015-09-041-1/+6
|\ | | | | | | Add detailed error message to `IrreversibleMigration`
| * Add detailed error message to `IrreversibleMigration`yui-knk2015-08-301-1/+6
| |
| * Add detailed error message to `IrreversibleMigration`yui-knk2015-08-281-1/+1
| |
| * Add detailed error message to `IrreversibleMigration`yui-knk2015-08-281-1/+1
| |
* | Merge pull request #21432 from yui-knk/fix/what_change_method_can_reverseSean Griffin2015-08-301-1/+13
|\ \ | | | | | | [ci skip] Update what methods `Migration#change` can reverse
| * | [ci skip] Update what methods `Migration#change` can reverseyui-knk2015-08-311-1/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Documentations and comments about what methods `Migration#change` can reverse is out of date. For example `change_column_default` is now reversible by this [commit](https://github.com/rails/rails/pull/20018). * Comments about `CommandRecorder` dose not match with Rails Guide. For example `add_foreign_key` is listed only on Rails Guide.
* | | Merge pull request #21429 from yui-knk/fix/revert_disable_extensionSean Griffin2015-08-301-1/+1
|\ \ \ | |/ / |/| | Make revert of `disable_extension` to work
| * | Make revert of `disable_extension` to workyui-knk2015-08-301-1/+1
| |/ | | | | | | | | | | This is fix of #11826 which miss to add `disable_extension` to `ReversibleAndIrreversibleMethods`. So `CommandRecorder#method_missing` catches `change_column_default` and @delegate's method is called.
* | Merge branch 'master' of github.com:rails/docrailsVijay Dev2015-08-301-1/+1
|\ \ | |/ |/|
| * [ci skip] Capitalize commentsyui-knk2015-08-291-1/+1
| |
* | Make `change_column_default` to workyui-knk2015-08-251-8/+8
|/ | | | | | | | | | | | This is fix of #20018 which removes `change_column_default` from array, so `CommandRecorder#method_missing` catches `change_column_default` and @delegate's method is called. This PR * fix this bug * define `ReversibleAndIrreversibleMethods` const making clear which this array means to prevent these miss
* Add reversible syntax for change_column_defaultPrem Sichanugrist2015-06-261-1/+11
| | | | | | | | | | | | | Passing `:from` and `:to` to `change_column_default` makes this command reversible as user has defined its previous state. So, instead of having the migration command as: change_column_default(:posts, :state, "draft") They can write it as: change_column_default(:posts, :state, from: nil, to: "draft")
* make `remove_index :table, :column` reversible.Yves Senn2015-06-151-7/+9
| | | | | | | | | This used to raise a `IrreversibleMigration` error (since #10437). However since `remove_index :table, :column` is probably the most basic use-case we should make it reversible again. Conflicts: activerecord/CHANGELOG.md
* Add an invert method for remove_foreign_keyAster Ryan2015-06-111-0/+10
|
* Merge pull request #16305 from tomkadwill/documented_change_tableRafael Mendonça França2014-07-281-1/+1
|\ | | | | Added documentation for change_table
| * Added nodoc to change_tableTom Kadwill2014-07-281-1/+1
| |
* | fk: review corrections: indent, visibility, syntax, wording.Yves Senn2014-06-261-3/+3
| |
* | fk: infere column name from table names.Yves Senn2014-06-261-1/+3
| | | | | | | | This allows to create and remove foreign keys without specifying a column.
* | fk: make `add_foreign_key` reversible.Yves Senn2014-06-261-1/+16
|/
* Drop the correct index after reverting a migrationHubert Dąbrowski2014-02-131-1/+6
| | | | | | Previously when reverting a migration which added a named index it would instead drop a corresponding index with matching columns but without a name.
* make `change_column_null` reversible. Closes #13576.Yves Senn2014-01-081-1/+6
| | | | Closes #13623.
* Make change_table use object of current database adapterNishant Modak2014-01-071-4/+6
| | | | | | | | | - Earlier, change_table was creating database-agnostic object. - After this change, it will create correct object based on current database adapter. - This will ensure that create_table and change_table will get same objects. - This makes update_table_definition method public and nodoc. - Fixes #13577 and #13503
* Make 'enable_extension' revertibleEric Tipton2013-08-101-1/+2
| | | | | If 'enable_extension' is used in a migration's 'change' method, use 'disable_extension' on down migration (and vice-versa).
* raise IrreversibleMigration if no column givenNeeraj Singh2013-05-061-1/+4
| | | | | | | | | | | | | | | fixes #10419 Following code should raise IrreversibleMigration. But the code was failing since options is an array and not a hash. def change change_table :users do |t| t.remove_index [:name, :email] end end Fix was to check if the options is a Hash before operating on it.
* Fixes for PR [#8267]Marc-Andre Lafortune2012-12-221-1/+2
| | | | | | | | * Fix Migration#reversible by not using `transaction`. * Adapt mysql adapter to updated api for remove_column * Update test after aedcd683684d08eaf30623a4b48ce31a31426372
* Remove duplicated methods in command recorder and duplicated test nameCarlos Antonio da Silva2012-12-211-3/+3
|
* Make execute, change_column and remove_columns methods actually irreversibleMarc-Andre Lafortune2012-12-211-1/+2
| | | | [#8267]
* Make change_table reversible when possible [#8267]Marc-Andre Lafortune2012-12-211-1/+5
|
* Factorize methods that are easily reversible [#8267]Marc-Andre Lafortune2012-12-211-34/+20
|
* Make remove_index reversible [#8267]Marc-Andre Lafortune2012-12-211-4/+10
|
* Differentiate between remove_column and remove_columns. Make remove_column ↵Marc-Andre Lafortune2012-12-211-2/+7
| | | | | | reversible. [#8267]
* Make drop_table reversible [#8267]Marc-Andre Lafortune2012-12-211-3/+10
|
* Add drop_join_table [#8267]Marc-Andre Lafortune2012-12-211-3/+6
|