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

activerecord-postgis-adapter v2 do not create separate schema in Rails 4

我正在将带有 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 table 和 PostGIS 功能。

当我尝试克隆开发数据库进行测试时,我在 tables 和 postgis 列上有错误:type "postgis.geography" does not exist

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

这是此版本的 activerecord-postgis-adapter 中的一个问题,因为 SQL-schema。要正确克隆数据库,您需要转储和加载非 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