在创build迁移文件时分配默认值
rails generate migration AddRetweetsCountToTweet retweets_count:integer
好吧,我使用上面的行来创build迁移文件,在生成的文件中自动生成代码,以将数据列添加到数据types为integer的模型中。 现在我想在生成迁移文件的同时将默认值添加到添加的列中。 那可能吗? 我GOOGLE了,但无法find。 你需要帮助。
默认迁移生成器不处理默认值(支持列修饰符 ,但不包含default
或null
),但您可以创build自己的生成器。
您还可以在运行rake db:migrate
之前手动更新迁移文件rake db:migrate
通过将选项添加到add_column
来add_column
:
add_column :tweet, :retweets_count, :integer, :null => false, :default => 0
…并阅读Rails API
t.integer :retweets_count, :default => 0
… 应该pipe用。
请参阅有关迁移的Rails指南
是的,我看不到如何在迁移生成器命令中使用“default”,但是可以通过在应用“rake db:migrate”之前修改生成的迁移文件来按如下方式指定新string列的缺省值:
class AddColumnToWidgets < ActiveRecord::Migration def change add_column :widgets, :colour, :string, default: 'red' end end
这会在我的“Widget”模型中添加一个名为“color”的新列,并将新Widget的默认“颜色”设置为“red”。
我在迁移文件中尝试了t.boolean:active,:default => 1来创build整个表。 运行该迁移后,当我检查分贝它作为null。 即使我告诉默认为“1”。 之后,稍微我改变了迁移文件这样的话,它为我设置默认值创build表迁移文件。
t.boolean:active,:null => false,:default => 1。 为我工作。
我的Rails框架版本是4.0.0