rails generate migration AddRetweetsCountToTweet retweets_count:integer
好的,我使用上面的行来创建迁移文件,该文件会在生成的文件中自动生成代码,以将一列添加到数据类型为整数的模型推文中。现在我想在生成迁移文件时为添加的列添加默认值。那可能吗?我用谷歌搜索但找不到。伙计们需要帮助。
默认迁移生成器不处理默认值(支持 column modifiers,但不包括 default
或 null
),但您可以创建自己的生成器。
您还可以通过将选项添加到 add_column
来在运行 rake db:migrate
之前手动更新迁移文件:
add_column :tweet, :retweets_count, :integer, :null => false, :default => 0
...并阅读Rails API
是的,我也看不到如何在迁移生成器命令中使用“默认”,但能够通过在应用“rake db:migrate”之前修改生成的迁移文件来为新的字符串列指定默认值,如下所示:
class AddColumnToWidgets < ActiveRecord::Migration
def change
add_column :widgets, :colour, :string, default: 'red'
end
end
这会在我的“小部件”模型中添加一个名为“颜色”的新列,并将新小部件的默认“颜色”设置为“红色”。
我在迁移文件中尝试了 t.boolean :active, :default => 1 来创建整个表。在我签入数据库时运行该迁移后,它变为空。即使我告诉默认为“1”。在那之后,我稍微改变了迁移文件,然后它为我设置了创建表迁移文件的默认值。
t.boolean :active, :null => false,:default =>1。为我工作。
我的 Rails 框架版本是 4.0.0
您必须首先为模型基础创建迁移,然后创建另一个迁移以使用 change_column ...
def change
change_column :widgets, :colour, :string, default: 'red'
end