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
我正在将带有 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