我收到此错误信息:
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:回滚的工作就好了。
的pg_dump
命令在执行了activerecord / LIB / active_record / railties / databases.rake在线路428 。
`pg_dump -i -s -x -O -f #{Shellwords.escape(filename)} #{search_path} #{Shellwords.escape(config['database'])}`
尝试设置一个断点,看到什么实际的命令运行。
所有这些选项都是有效的Pg9.0.x,所以我怀疑有一些有趣的事情在abcs[Rails.env]['schema_search_path']
这混淆psql的选项解析。 注意search_path
建设不引用--schema
说法,所以search_path_part
与嵌入式空间将解析为局部模式名,然后这是不是一个选项前面一个字,所以psql将其解释为数据库名,然后抱怨当它到达真正的数据库名称后。
由于dbenhur我发现这个问题。 我在我的文件名的路径的空间。 更改的行392 activerecord/lib/active_record/railties/databases.rake
到
pg_dump -i -s -x -O -f '#{filename}' #{search_path} #{abcs[Rails.env]['database']}
(添加周围的单引号#{filename}
)修复该问题。
我有一个分贝问题呈三角:结构:转储在我的设置。 导轨3.2.11 +的JRuby 1.7.1 [1.8模式] PostgreSQL的9.1.7。
这真的帮了唯一的办法就是从1.2.5版本降级activerecord_jdbc_adapter到1.2.2。
gem 'activerecord-jdbc-adapter', '1.2.2'
gem "activerecord-jdbcpostgresql-adapter", '1.2.2'
希望这将帮助任何人。
我通过创建的PostgreSQL数据库新的应用程序(固定这个(黑)问题rails new MyApp -d postgresql
),然后我所有的旧的应用程序文件(/ app文件夹,迁移,以及一些/配置文件)移动到新的一个。 现在,当我运行耙分贝:迁移,没有pg_dump的错误。 我希望这可以帮助别人。