我的用户表登录列是字符串类型有40个字符的限制。 现在我打算增加限制到55个字符。Rails的迁移:如何通过使用ROR迁移增加列数据类型大小
中的任何一个,请让我知道我们如何能够增加使用ROR迁移此限制。
感谢, Sravan
我的用户表登录列是字符串类型有40个字符的限制。 现在我打算增加限制到55个字符。Rails的迁移:如何通过使用ROR迁移增加列数据类型大小
中的任何一个,请让我知道我们如何能够增加使用ROR迁移此限制。
感谢, Sravan
class YourMigration < ActiveRecord::Migration
def change
change_column :users, :login, :string, :limit => 55
end
end
class YourMigration < ActiveRecord::Migration
def up
change_column :users, :login, :string, :limit => 55
end
def down
change_column :users, :login, :string, :limit => 40
end
end
这会破坏还是保留生产数据库中的现有值? – BKSpurgeon
根据我的经验,这将保存数据,并且被认为是安全的行动。 –
我不喜欢这个解决方案或下面的解决方案,因为它们可能不可逆。如果数据的登录字符串长度超过40个字符,并且您尝试回滚迁移,您将收到以下错误:ActiveRecord :: StatementInvalid:PG :: StringDataRightTruncation:错误:值类型字符变化时间太长(40) 。 –
这似乎并不可逆没有以前的限制在迁移 –
是,@ChrisBeck这种迁移是不可逆的。 –