Ort*_*ntz 4 postgresql rake ruby-on-rails ruby-on-rails-3.2
我收到此错误消息:
pg_dump: too many command-line arguments (first is "demo_db") Try "pg_dump --help" for more information. rake aborted! Error dumping database Tasks: TOP => db:structure:dump (See full trace by running task with --trace)
这曾经在Rails 3.1下工作.我正在使用Rails 3.2.3和PostgreSQL 9.0.5.db:migrate或db:rollback等其他任务工作正常.
该pg_dump
命令在第428行的activerecord/lib/active_record/railties/databases.rake中执行.
`pg_dump -i -s -x -O -f #{Shellwords.escape(filename)} #{search_path} #{Shellwords.escape(config['database'])}`
Run Code Online (Sandbox Code Playgroud)
尝试在那里设置断点并查看正在运行的实际命令.
所有这些选项都适用于Pg9.0.x,所以我怀疑有一些有趣的东西abcs[Rails.env]['schema_search_path']
混淆了psql的选项解析.注意search_path
构造不引用--schema
参数,因此search_path_part
带有嵌入空格的a将解析为部分模式名称后跟一个前面没有选项的单词,因此psql会将其解释为数据库名称,然后在它出现时进行抱怨稍后获取真实的数据库名称.
感谢dbenhur,我发现了这个问题.我的文件名路径中有一个空格.更改线路392 activerecord/lib/active_record/railties/databases.rake
到
pg_dump -i -s -x -O -f '#{filename}' #{search_path} #{abcs[Rails.env]['database']}
Run Code Online (Sandbox Code Playgroud)
(添加单引号#{filename}
)修复了问题.
归档时间: |
|
查看次数: |
4460 次 |
最近记录: |