当前位置:  开发笔记 > 后端 > 正文

Ruby on Rails - Postgres:数组值必须以"{"或维度信息开头

如何解决《RubyonRails-Postgres:数组值必须以"{"或维度信息开头》经验,为你挑选了1个好方法。

对于我的Rails应用程序我从sqlite3切换到Postgres的生产环境.我想把sqlite db中的数据带到postgres db.

我设置了postgres和超级用户.

当我的用户rake db:setup全部顺利到它应该播种数据库的部分.

出现此错误:

rake aborted!
ActiveRecord::StatementInvalid: PG::InvalidTextRepresentation: ERROR:  malformed array literal: "---
- ''
"
DETAIL:  Array value must start with "{" or dimension information.

我的数据库包含数组,这在sqlite上运行良好,即使在迁移和播种到新设置时也是如此.

我猜这个错误是由于语法与postgres db不兼容造成的.如果是这种情况,我可以创建包含正确语法的seeds.rb文件吗?

任何帮助表示赞赏.

版本:

Rails 4.1.8
ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-linux]

Jordan Runni.. 11

看起来数组在插入数据库之前被序列化为YAML(---表示YAML文档的开始).

我猜你的模型有例如serialize :some_field, Array,在SQLite中存储数组是必要的,但是如果你现在使用的是本机Postgres数组列类型会引起问题.如果您的模型中有这样的行,请尝试将其删除.



1> Jordan Runni..:

看起来数组在插入数据库之前被序列化为YAML(---表示YAML文档的开始).

我猜你的模型有例如serialize :some_field, Array,在SQLite中存储数组是必要的,但是如果你现在使用的是本机Postgres数组列类型会引起问题.如果您的模型中有这样的行,请尝试将其删除.

推荐阅读
拾味湖
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有