2013-02-19 45 views
16

Tôi đã thiết lập cơ sở dữ liệu mới để cài đặt Discourse trong PostgreSQL. Khi tôi chạy rake db: di chuyển, nó tạo ra hầu hết các bảng, nhưng sau đó nó không thành công:Thiết lập Discourse trên Ubuntu 12.04 LTS

-- execute("INSERT INTO archetypes (name_key, created_at, updated_at) VALUES ('poll', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP)") 
    -> 0.0009s 
-- add_column(:forum_threads, :archetype_id, :integer, {:default=>1, :null=>false}) 
    -> 0.0209s 
== CreateArchetypes: migrated (0.0424s) ====================================== 

== AddMetaDataToForumThreads: migrating ====================================== 
-- execute("CREATE EXTENSION IF NOT EXISTS hstore") 
rake aborted! 
An error has occurred, this and all later migrations canceled: 

PG::Error: ERROR: could not open extension control file "/usr/share/postgresql/9.1/extension/hstore.control": No such file or directory 
: CREATE EXTENSION IF NOT EXISTS hstore 
/usr/local/rvm/gems/ruby-1.9.3-p385/bundler/gems/MiniProfiler-d149f34fcdb6/Ruby/lib/patches/sql_patches.rb:155:in `exec' 
/usr/local/rvm/gems/ruby-1.9.3-p385/bundler/gems/MiniProfiler-d149f34fcdb6/Ruby/lib/patches/sql_patches.rb:155:in `async_exec' 
/usr/local/rvm/gems/ruby-1.9.3-p385/gems/activerecord-3.2.12/lib/active_record/connection_adapters/postgresql_adapter.rb:652:in `block in execute' 
/usr/local/rvm/gems/ruby-1.9.3-p385/gems/activerecord-3.2.12/lib/active_record/connection_adapters/abstract_adapter.rb:280:in `block in log' 
/usr/local/rvm/gems/ruby-1.9.3-p385/gems/activesupport-3.2.12/lib/active_support/notifications/instrumenter.rb:20:in `instrument' 
/usr/local/rvm/gems/ruby-1.9.3-p385/gems/activerecord-3.2.12/lib/active_record/connection_adapters/abstract_adapter.rb:275:in `log' 
/usr/local/rvm/gems/ruby-1.9.3-p385/gems/activerecord-3.2.12/lib/active_record/connection_adapters/postgresql_adapter.rb:651:in `execute' 
/usr/local/rvm/gems/ruby-1.9.3-p385/gems/activerecord-3.2.12/lib/active_record/migration.rb:466:in `block in method_missing' 
/usr/local/rvm/gems/ruby-1.9.3-p385/gems/activerecord-3.2.12/lib/active_record/migration.rb:438:in `block in say_with_time' 
/usr/local/rvm/gems/ruby-1.9.3-p385/gems/activerecord-3.2.12/lib/active_record/migration.rb:438:in `say_with_time' 
/usr/local/rvm/gems/ruby-1.9.3-p385/gems/activerecord-3.2.12/lib/active_record/migration.rb:458:in `method_missing' 
/root/discourse/db/migrate/20120921162512_add_meta_data_to_forum_threads.rb:3:in `change' 
/usr/local/rvm/gems/ruby-1.9.3-p385/gems/activerecord-3.2.12/lib/active_record/migration.rb:407:in `block (2 levels) in migrate' 
/usr/local/rvm/gems/ruby-1.9.3-p385/gems/activerecord-3.2.12/lib/active_record/migration.rb:407:in `block in migrate' 
/usr/local/rvm/gems/ruby-1.9.3-p385/gems/activerecord-3.2.12/lib/active_record/connection_adapters/abstract/connection_pool.rb:129:in `with_connection' 
/usr/local/rvm/gems/ruby-1.9.3-p385/gems/activerecord-3.2.12/lib/active_record/migration.rb:389:in `migrate' 
/usr/local/rvm/gems/ruby-1.9.3-p385/gems/activerecord-3.2.12/lib/active_record/migration.rb:528:in `migrate' 
/usr/local/rvm/gems/ruby-1.9.3-p385/gems/activerecord-3.2.12/lib/active_record/migration.rb:720:in `block (2 levels) in migrate' 
/usr/local/rvm/gems/ruby-1.9.3-p385/gems/activerecord-3.2.12/lib/active_record/migration.rb:775:in `call' 
/usr/local/rvm/gems/ruby-1.9.3-p385/gems/activerecord-3.2.12/lib/active_record/migration.rb:775:in `block in ddl_transaction' 
/usr/local/rvm/gems/ruby-1.9.3-p385/gems/activerecord-3.2.12/lib/active_record/connection_adapters/abstract/database_statements.rb:192:in `transaction' 
/usr/local/rvm/gems/ruby-1.9.3-p385/gems/activerecord-3.2.12/lib/active_record/transactions.rb:208:in `transaction' 
/usr/local/rvm/gems/ruby-1.9.3-p385/gems/activerecord-3.2.12/lib/active_record/migration.rb:775:in `ddl_transaction' 
/usr/local/rvm/gems/ruby-1.9.3-p385/gems/activerecord-3.2.12/lib/active_record/migration.rb:719:in `block in migrate' 
/usr/local/rvm/gems/ruby-1.9.3-p385/gems/activerecord-3.2.12/lib/active_record/migration.rb:700:in `each' 
/usr/local/rvm/gems/ruby-1.9.3-p385/gems/activerecord-3.2.12/lib/active_record/migration.rb:700:in `migrate' 
/usr/local/rvm/gems/ruby-1.9.3-p385/gems/activerecord-3.2.12/lib/active_record/migration.rb:570:in `up' 
/usr/local/rvm/gems/ruby-1.9.3-p385/gems/activerecord-3.2.12/lib/active_record/migration.rb:551:in `migrate' 
/usr/local/rvm/gems/ruby-1.9.3-p385/gems/activerecord-3.2.12/lib/active_record/railties/databases.rake:179:in `block (2 levels) in <top (required)>' 
/usr/local/rvm/gems/ruby-1.9.3-p385/bin/ruby_noexec_wrapper:14:in `eval' 
/usr/local/rvm/gems/ruby-1.9.3-p385/bin/ruby_noexec_wrapper:14:in `<main>' 
Tasks: TOP => db:migrate 

Bất kỳ đầu mối?

Trả lời

45

Nó xuất hiện từ lỗi cơ sở dữ liệu "không thể mở tệp điều khiển tiện ích" khi đang cố gắng CREATE EXTENSION [...] hstore mà tiện ích mở rộng hstore chưa được cài đặt.

Trên Ubuntu, bạn có thể cài đặt tiện ích bằng cách cài đặt gói postgresql-contrib.

sudo apt-get install postgresql-contrib 

Người dùng terryjray có tài liệu enabling hstore trong Gist.

+0

tôi, tuy nhiên, một sudoer, và Tôi sẽ có thể cài đặt nó. –

+0

Tôi cũng có thể thêm rằng tôi chạy điều này như là người chủ và người dùng db. Xin lỗi vì spam nhận xét. –

+0

Kiểm tra vai trò người dùng của bạn trên cơ sở dữ liệu của bạn. Tôi đoán bạn không phải là superuser db-user-wise. [Hướng dẫn pg của Ubuntu] (https://help.ubuntu.com/community/PostgreSQL) có thể hữu ích để trợ giúp thiết lập vai trò người dùng db của bạn. –

2

Nếu bạn có hai Postgresql cài đặt trên ubuntu của bạn như 9.19.3

Trước khi chạy cài đặt phiên bản cụ thể, bạn có thể cần phải thêm postgres đúng repo sử dụng instructions của họ mà tôi diễn giải dưới đây trong trường hợp họ biến mất:

deb http://apt.postgresql.org/pub/repos/apt/ UBUNTU_VERSION_NAME-pgdg main 
sudo apt-get install wget ca-certificates 
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - 
apt-get update 

(UBUNTU_VERSION_NAME nên được thay thế bởi đáng tin cậy hoặc bất cứ tên phiên bản của bạn là)

sau đó bạn có thể sử dụng lệnh dưới đây để cài đặt tiện ích hstore trên mỗi máy chủ riêng biệt:

PostgreSQL 9.1:

sudo apt-get install postgresql-contrib-9.1 

PostgreSQL 9,3:

sudo apt-get install postgresql-contrib 
Các vấn đề liên quan