【问题标题】:activerecord-postgis-adapter v2 do not create separate schema in Rails 4activerecord-postgis-adapter v2 不在 Rails 4 中创建单独的模式
【发布时间】:2015-02-16 08:51:04
【问题描述】:

我正在将带有 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 中提取了单独的模式名称。我指定了它,但没有任何改变。

【问题讨论】:

    标签: ruby-on-rails ruby postgresql postgis


    【解决方案1】:

    由于 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
    

    【讨论】:

    • 您能否详细说明“此版本的 activerecord-postgis-adapter 中的问题”?我遇到了类似的问题,在转储后没有正确填充 postgis 架构。
    猜你喜欢
    • 1970-01-01
    • 2018-02-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-13
    • 1970-01-01
    • 1970-01-01
    • 2016-04-04
    • 1970-01-01
    相关资源
    最近更新 更多