我将 RoR5 与 PostgreSQL 结合使用。我有一个包含一列的表 status
.这是一个整数类型,包含三个值 0、1、2。这些值代表三种状态 allowed
, not_allowed
和 no_tests
.
我要改变逻辑。我想转换两种状态allowed
和 not_allowed
进入boolean
.然后我将为 no_tests
创建一个单独的列.
现在我有这个符合:
enum status: %i[allowed not_allowed no_tests]
.
我应该如何编写迁移以获得 allowed
作为true
和两个not_allowed
和 no_tests
作为false
在更改的列中?
最佳答案
实际上这是两个独立的操作(更改表结构、转换现有数据),通常在迁移中只会完成其中一个。如果我是你,我将首先运行迁移以添加新的状态列,然后在 sql 中执行更新(如果你可以轻松访问 postgres 控制台)或在 rails 控制台中对新列中的现有数据进行重新编码。重新编码数据后,您可以在另一次迁移中删除旧列。
关于ruby-on-rails - rails 迁移。使用 change_column 将整数值转换为 bool 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48011767/