我得到了:
PG::UndefinedObject: ERROR: type "hstore" does not exist
LINE 1: ...arying(255), "finish" timestamp, "widget_locations" hstore)
以下是我的Travis配置文件:
language: ruby
rvm:
- 2.0.0
env:
- DB=postgresql
script:
- RAILS_ENV=test bundle exec rake db:migrate --trace
- bundle exec rake db:test:prepare
- bundle exec rspec spec/
before_script:
- cp config/database.travis.yml config/database.yml
- psql -c 'create database virtual_test' -U postgres
- psql virtual_test -c 'CREATE EXTENSION hstore' -U postgres
bundler_args: --binstubs=./bundler_stubs
before_install:
- bundle update debugger-ruby_core_source
我还有以下迁移文件:
class SetupHstore < ActiveRecord::Migration
def self.up
execute 'CREATE EXTENSION IF NOT EXISTS hstore'
end
def self.down
execute 'DROP EXTENSION IF EXISTS hstore'
end
end
然而,无论如何都会产生错误。
这里有什么问题吗?
答案 0 :(得分:1)
可能为时已晚,但遇到同样的问题。将hstore create更改为:
- psql virtual_test -c 'CREATE EXTENSION IF NOT EXISTS hstore' -U postgres
并且rake db:test:准备这个:
- RAILS_ENV=test bundle exec rake db:test:prepare
它很奇怪,但它有效,也可以帮助你。
答案 1 :(得分:0)
这可能是由于此答案中描述的search_path
问题引起的:
答案 2 :(得分:0)
将您的before_script
更改为:
before_script:
- psql template1 -c 'create extension hstore;'
- cp config/database.travis.yml config/database.yml
- psql -c 'create database virtual_test' -U postgres
请注意,我们会在第一行创建扩展程序。