Ruby on rails 如何使用现有数据创建新的非空列?
我正在一个表中创建一个新列,它是uuid/guid 添加列:users,:uuid,:string,null:false 我正在使用以下方法设置uuid:Ruby on rails 如何使用现有数据创建新的非空列?,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,我正在一个表中创建一个新列,它是uuid/guid 添加列:users,:uuid,:string,null:false 我正在使用以下方法设置uuid: SecureRandom.uuid 迁移失败,因为现有数据没有任何值 如何在此迁移期间为每个具有新uuid的用户设置值?添加not null列时,您有两个选项: 提供一个DB默认值 添加一个可为null的列,更新所有数据,将该列更改为不可为null 根据您使用的数据库,它可能允许或不允许您将表达式设置为默认值 既然你提到你正在使用Postg
SecureRandom.uuid
迁移失败,因为现有数据没有任何值
如何在此迁移期间为每个具有新uuid的用户设置值?添加not null列时,您有两个选项:
default: -> { 'uuid_generate_v1()' }
添加非空列时有2个选项:
default: -> { 'uuid_generate_v1()' }
你忽略了提到你正在使用的数据库软件…MySQL?SQL小姐?PostGre?@mrunion我在用postgres。你忘了提到你在用什么数据库软件……MySQL?SQL小姐?PostGre?@Union先生我在用postgres。