ruby-on-rails - rails 迁移。使用 change_column 将整数值转换为 bool 值

标签 ruby-on-rails postgresql database-migration

我将 RoR5 与 PostgreSQL 结合使用。我有一个包含一列的表 status .这是一个整数类型,包含三个值 0、1、2。这些值代表三种状态 allowed , not_allowedno_tests .

我要改变逻辑。我想转换两种状态allowednot_allowed进入boolean .然后我将为 no_tests 创建一个单独的列.

现在我有这个符合: enum status: %i[allowed not_allowed no_tests] .

我应该如何编写迁移以获得 allowed作为true和两个not_allowedno_tests作为false在更改的列中?

最佳答案

实际上这是两个独立的操作(更改表结构、转换现有数据),通常在迁移中只会完成其中一个。如果我是你,我将首先运行迁移以添加新的状态列,然后在 sql 中执行更新(如果你可以轻松访问 postgres 控制台)或在 rails 控制台中对新列中的现有数据进行重新编码。重新编码数据后,您可以在另一次迁移中删除旧列。

关于ruby-on-rails - rails 迁移。使用 change_column 将整数值转换为 bool 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48011767/

相关文章:

php - 更新现有的列属性 - Laravel 5 迁移

database - Laravel 迁移是否应该用于更改实时列值?

javascript - Rails应用程序不会使用 “embedd”附加youtube链接

ruby-on-rails - 如何将 SQL Server TableView 用作 Rails 模型(只读)?

ruby-on-rails - 迁移期间的 Ruby 工作流问题

mysql - 在 Rails 中比较 mysql 条目的简单方法

python - Django 1.11 - 如何查询上限为 None 的 DateTimeRangeField (PostgreSQL)

ios - 解析迁移到关于图像的 heroku/aws

python - SQLALchemy:查询 Postgres JSONB 列的单个键或键的子集

sql - 如何使用 Group by 和 Sum 更新表