【问题标题】:How can i convert string and datetime column type in binary in rails migration?如何在 Rails 迁移中将字符串和日期时间列类型转换为二进制?
【发布时间】:2021-11-22 09:25:30
【问题描述】:

我正在学习 rails 并从事一个需要将字符串列类型转换为二进制的项目 我试过了

change_column :workers, :sin,:binary

但我无法做到。

PG::DatatypeMismatch: ERROR:  column "sin" cannot be cast automatically to type bytea

我希望我的罪孽数据应该以加密形式存储,我正在使用这个 gem https://github.com/stas/active_record-pgcrypto 我还想在 UI 中显示时解密数据。 我愿意接受建议。 谢谢

【问题讨论】:

  • change_column :workers, :sin, 'binary USING CAST(sin AS binary)' - 请注意,这可能不会完全符合您的期望。如果您有现有数据,我建议您先创建一个新列。

标签: ruby-on-rails pgcrypto


【解决方案1】:

我认为最简单的方法是进行数据迁移。创建一个新的二进制列,然后为每条记录将当前列转换为使用ActiveRecord::PGCrypto::SymmetricCoder.encrypt(value) 的加密形式,并将此加密值存储在新的二进制列中。注意我没有测试过,我只是检查了gem的代码。

【讨论】:

    猜你喜欢
    • 2016-08-27
    • 2014-11-15
    • 2014-10-13
    • 2013-06-12
    • 2020-09-06
    • 2023-04-04
    相关资源
    最近更新 更多