在创build迁移文件时分配默认值

rails generate migration AddRetweetsCountToTweet retweets_count:integer 

好吧,我使用上面的行来创build迁移文件,在生成的文件中自动生成代码,以将数据列添加到数据types为integer的模型中。 现在我想在生成迁移文件的同时将默认值添加到添加的列中。 那可能吗? 我GOOGLE了,但无法find。 你需要帮助。

默认迁移生成器不处理默认值(支持列修饰符 ,但不包含defaultnull ),但您可以创build自己的生成器。

您还可以在运行rake db:migrate之前手动更新迁移文件rake db:migrate通过将选项添加到add_columnadd_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