Can I pass default value to rails generate migration?

后端 未结 4 905
执念已碎
执念已碎 2020-12-29 19:39

I want to know if I can pass a default value to the rails g migration command. Something like:

 $ rails generate migration add_         


        
相关标签:
4条回答
  • 2020-12-29 20:02

    Default migration generator in Rails does not handle default values, there is no way around as of now to specify default value defined through terminal in rails migration.

    you would like to follow below steps in order to achieve what you want

    1). Execute

    $ rails generate migration add_disabled_to_users disabled:boolean
    

    2). Set the new column value to TRUE/FALSE by editing the new migration file created.

    class AddDisabledToUsers < ActiveRecord::Migration
      def change
        add_column :users, :disabled, :boolean, default: false
      end
    end
    

    3). Run above generated migration by Executing.

    $ rake db:migrate
    
    0 讨论(0)
  • 2020-12-29 20:05

    You can't: https://guides.rubyonrails.org/active_record_migrations.html#column-modifiers

    null and default cannot be specified via command line.

    The only solution is to modify the migration after it's generated. It was the case in Rails 3, still the case in Rails 6

    0 讨论(0)
  • 2020-12-29 20:08

    Rails 3.2 does not seem to support any kind of command line type modifier based on http://guides.rubyonrails.org/v3.2/migrations.html

    The documentation for Rails 4.1 refers to type modifiers but the documentation for Rails 3.2 does not mention the word "modifier" in the page.

    0 讨论(0)
  • 2020-12-29 20:15

    Rails migration generator does not handle default values, but after generation of migration file you should update migration file with following code

    add_column :users, :disabled, :boolean, default: false
    

    you can also see this link - http://api.rubyonrails.org/classes/ActiveRecord/Migration.html

    0 讨论(0)
提交回复
热议问题