我正在尝试使用pg_power运行生成postgresql架构的迁移。
class CreateSchemas < ActiveRecord::Migration
def change
create_schema 'deprecated'
create_schema 'leaf'
create_schema 'mmp'
create_schema 'mmp_static'
create_schema 'nass'
create_schema 'static'
end
end
当我运行迁移时,我收到以下错误
** Invoke db:migrate (first_time)
** Invoke environment (first_time)
** Execute environment
** Invoke db:load_config (first_time)
** Execute db:load_config
** Execute db:migrate
** Invoke db:_dump (first_time)
** Execute db:_dump
** Invoke db:schema:dump (first_time)
** Invoke environment
** Invoke db:load_config
** Execute db:schema:dump
rake aborted!
undefined method `[]' for nil:NilClass
/Users/Pro777/.bundler/ruby/2.0.0/pg_power-36a643247425/lib/pg_power/schema_dumper/extension_methods.rb:17:in `block in dump_extensions'
/Users/Pro777/.bundler/ruby/2.0.0/pg_power-36a643247425/lib/pg_power/schema_dumper/extension_methods.rb:15:in `map'
/Users/Pro777/.bundler/ruby/2.0.0/pg_power-36a643247425/lib/pg_power/schema_dumper/extension_methods.rb:15:in `dump_extensions'
/Users/Pro777/.bundler/ruby/2.0.0/pg_power-36a643247425/lib/pg_power/schema_dumper/extension_methods.rb:6:in `header_with_extensions'
/Library/Ruby/Gems/2.0.0/gems/activerecord-4.0.0/lib/active_record/schema_dumper.rb:26:in `dump'
/Library/Ruby/Gems/2.0.0/gems/activerecord-4.0.0/lib/active_record/schema_dumper.rb:21:in `dump'
/Library/Ruby/Gems/2.0.0/gems/activerecord-4.0.0/lib/active_record/railties/databases.rake:244:in `block (4 levels) in <top (required)>'
/Library/Ruby/Gems/2.0.0/gems/activerecord-4.0.0/lib/active_record/railties/databases.rake:243:in `open'
/Library/Ruby/Gems/2.0.0/gems/activerecord-4.0.0/lib/active_record/railties/databases.rake:243:in `block (3 levels) in <top (required)>'
我应该说我正在使用ruby 2.0,rails 4.0和pg_power的rails4分支。
答案 0 :(得分:1)
使用Ruby&lt; = 1.9.3(您使用的是2.0)和ActiveRecord 3测试了该库。
使用Rails 3.1.x和3.2.x,Ruby 1.8.7 REE和1.9.3进行了测试。
此外,似乎与Rails 4存在一些不兼容性。
该库不使用公共ActiveRecord API,而是使用monkey patching(alias_method_chain
)。如果异常是因为库当前不能与Rails 4一起使用,我不会感到惊讶。
为了解决这个问题,您应该看看ActiveRecord内部从Rails 3到Rails 4的变化,并更新Gem中相应的覆盖。这可能是一个小的或巨大的努力,取决于变化的数量。
我鼓励您找到替代方案并在official issue tracker中报告此问题。
答案 1 :(得分:0)
当你试图对rails4运行pg_power时,它确实不能正常工作。 现在,pg_power支持rails4,你必须使用2.X.X版本。