首页 文章

如何从ActiveRecord的Serialize Array迁移到Postgres Array数据类型

提问于
浏览
0

Rails 4支持postgres' array data type,我们想开始利用postgres中的数组类型,如何将现有ActiveRecord serialized array字段迁移到新数据类型?

1 回答

  • 2

    serialize 将数据库中的内容存储为文本列中的YAML文档 . YAML不是在数据库中使用的最简单的格式,因此最直接的方法是:

    • 添加数组列以保存数组 .

    • 循环遍历Rails中的每个记录,让ActiveRecord反序列化YAML,将 serialize 列中的Ruby数组从 1 复制到实际数组列 .

    • 从模型中删除 serialize 声明 .

    • 删除 serialize 使用的旧列 .

    • 1 重命名该列 .

    • 如果需要,将新重命名的列设置为 NOT NULL .

    您可以使用regexstring函数解析数据库中的YAML,但这取决于您在YAML中存储的内容 .

相关问题