activerecord-postgis-adapter v2不会在Rails 4中创建单独的模式

时间:2015-02-16 08:51:04

标签: ruby-on-rails ruby postgresql postgis

我正在使用activerecord-postgis-adapter(0.6.5)将Rails 3.2项目更新到Rails 4.0(ar-postgis-adapter 2.2.1)。

当我尝试通过rake db:create创建测试数据库时,创建的数据库只有一个public模式,其中包含spatial_ref_sys表和PostGIS函数。

当我尝试克隆开发数据库以进行测试时,我对包含postgis列的表有错误:type "postgis.geography" does not exist

source code我发现gem接受来自连接配置的新参数postgis_schema(此参数未在自述文件中指定)。在早期版本中,从schema_search_path中提取了单独的模式名称。我指定了它但没有改变。

1 个答案:

答案 0 :(得分:0)

由于SQL架构,此版本的activerecord-postgis-adapter中存在此问题。要正确克隆db,您需要转储并加载非sql架构:

rake db:schema:dump
rake db:test:load_schema

或添加此任务:

Rake::Task["db:test:clone"].clear

namespace :db do
  namespace :test do
    task :clone => [:environment] do
      puts 'Dumping development schema...'
      Rake::Task['db:schema:dump'].invoke

      puts 'Loading development schema into test database...'
      Rake::Task['db:test:load_schema'].invoke
    end
  end
end