2013-02-19 18 views
16

Mam nową bazę danych do instalacji Dyskursu w PostgreSQL. Gdy uruchomię program rake db: migrate, tworzy większość tabel, ale następnie kończy się niepowodzeniem:Konfiguracja Dyskursu na 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 

Dowolna wskazówka?

Odpowiedz

45

Wygląda na to, że z powodu błędu bazy danych "nie można otworzyć pliku kontrolnego rozszerzenia", próbując uzyskać CREATE EXTENSION [...] hstore, że rozszerzenie hstore nie jest zainstalowane.

W systemie Ubuntu można zainstalować rozszerzenie, instalując pakiet postgresql-contrib.

sudo apt-get install postgresql-contrib 

Użytkownik terriaray udokumentował enabling hstore w Gist.

+0

Jestem jednak sudoer i Powinienem móc go zainstalować. –

+0

Mogę również dodać, że uruchomiłem to jako root i użytkownik db. Przepraszamy za spam w komentarzach. –

+0

Sprawdź swoją rolę użytkownika w bazie danych. Zgaduję, że nie jesteś superużytkownikiem db-user-mądry. [Poradnik Ubuntu pg guide] (https://help.ubuntu.com/community/PostgreSQL) może być pomocny przy ustawianiu ról użytkownika db-user. –

2

Jeśli masz dwa Postgresql instalacji na Ubuntu, takich jak 9.1 i 9.3

Przed uruchomieniem konkretną instalację wersji, może trzeba dodać odpowiednie postgres repo używając ich instructions który mam parafrazowanie poniżej w przypadku ich zniknąć:

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 

(powinny być zastąpione przez UBUNTU_VERSION_NAME wierny lub niezależnie od wersji jest nazwa)

wtedy Można użyć polecenia poniżej, aby zainstalować rozszerzenie hstore na każdym serwerze oddzielnie:

PostgreSQL 9.1:

sudo apt-get install postgresql-contrib-9.1 

PostgreSQL 9.3:

sudo apt-get install postgresql-contrib 
Powiązane problemy