对于我的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数组列类型会引起问题.如果您的模型中有这样的行,请尝试将其删除.
看起来数组在插入数据库之前被序列化为YAML(---
表示YAML文档的开始).
我猜你的模型有例如serialize :some_field, Array
,在SQLite中存储数组是必要的,但是如果你现在使用的是本机Postgres数组列类型会引起问题.如果您的模型中有这样的行,请尝试将其删除.