ruby Rails迁移:如何使用ROR迁移增加列数据类型大小

fnvucqvd  于 2023-11-18  发布在  Ruby
关注(0)|答案(3)|浏览(94)

我的用户表登录列是字符串类型,限制为40个字符。现在我计划将限制增加到55个字符。
任何一个请让我知道我们如何可以增加这个限制使用ROR迁移。
谢了,斯拉万

yizd12fk

yizd12fk1#

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

字符串

cgvd09ve

cgvd09ve2#

class YourMigration < ActiveRecord::Migration
  def change
    change_column :users, :login, :string, :limit => 55
  end
end

字符串

pwuypxnk

pwuypxnk3#

增加字符限制后,假设您插入了一些超过40个字符的数据。
现在运行db:rollback,一些现有数据不适合40个字符:

  • 可以显示数据库错误,或者,
  • 在现有数据中,字符串将被截断,您将丢失一些字符。

为了避免这个问题,我增加了up中的限制,但不改变down中的任何内容。

class FixUsersLogin < ActiveRecord::Migration
  def up
    change_column :users, :login, :string, limit: 55
  end

  def down
    # do nothing in rollback
  end
end

字符串

相关问题