[英]Rails migration: is it ok to use 'nil' as the default value for a boolean field?
[英]Use model field for default value in Rails migration
在我的Rails 4应用程序中,我想向用户模型添加一个“用户名”字段。 由于我已经在数据库中有用户,因此我想在迁移中使用他们的电子邮件(当前是模型的一部分)作为默认用户名。 这是我到目前为止的内容:
class AddUsernameColumnToUsers < ActiveRecord::Migration
def change
add_column :users, :username, :string, null: false
add_index :users, :username, unique: true
end
end
所以,我想做些类似的事情:
add_column :users, :username, :string, null: false, default: this.email
但是该代码无效。 有什么想法吗? 提前致谢。
你可以这样解决
class AddUsernameColumnToUsers < ActiveRecord::Migration def up add_column :users, :username, :string, null: false add_index :users, :username, unique: true query = 'UPDATE users SET username = email' ActiveRecord::Base.connection.execute(query) end def down remove_column :users, :username end end
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.