我正在使用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
中提取了单独的模式名称。我指定了它但没有改变。
答案 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