【问题标题】:Setting up Discourse on Ubuntu 12.04 LTS在 Ubuntu 12.04 LTS 上设置 Discourse
【发布时间】:2013-02-19 14:56:29
【问题描述】:

我已经为在 PostgreSQL 中安装 Discourse 设置了一个新数据库。当我运行 rake db:migrate 时,它​​会创建大部分表,但随后会失败:

-- 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

有什么线索吗?

【问题讨论】:

    标签: ruby-on-rails ubuntu rails-migrations hstore discourse


    【解决方案1】:

    尝试CREATE EXTENSION [...] hstore时出现数据库错误“无法打开扩展控制文件”表明扩展hstore未安装。

    在 Ubuntu 上,您可以通过安装 postgresql-contrib 包来安装扩展。

    sudo apt-get install postgresql-contrib
    

    用户 terryjray 在 Gist 中记录了 enabling hstore

    【讨论】:

    • 不过,我是 sudoer,应该可以安装它。
    • 我还可以补充一点,我以 root 和 db 用户身份运行它。很抱歉评论垃圾邮件。
    • 检查您在数据库中的用户角色。我猜你不是超级用户 db-user-wise。 Ubuntu pg guide 可能有助于帮助您设置 db-user 角色。
    • 此解决方案不适用于带有 Postgresql 9.2 的 Ubuntu 13.04,因为 Postgres APT 存储库不完全支持 Ubuntu 13.04。要安装 postgresql-contrib-9.2,我首先必须运行链接到 wiki link 的 shell 脚本 - 使用 Ubuntu 13.04 的参数“precise”运行它
    • 安装时出错postgresql-contrib /var/run/postgresql/.s.pgsql.5432.lock permission denied 所以我给了这样的权限sudo chown -R postgres:postgres /var/run/postgresql
    【解决方案2】:

    如果您在 ubuntu 上安装了两个 Postgresql,例如 9.19.3

    在运行特定于版本的安装之前,您可能需要使用他们的 instructions 添加正确的 postgres 存储库,以防它们消失:

    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 应替换为 trusty 或任何您的版本名称)

    然后您可以使用以下命令在每个服务器上分别安装hstore 扩展:

    Postgresql 9.1:

    sudo apt-get install postgresql-contrib-9.1
    

    Postgresql 9.3:

    sudo apt-get install postgresql-contrib
    

    【讨论】:

      猜你喜欢
      • 2013-11-09
      • 1970-01-01
      • 1970-01-01
      • 2014-01-07
      • 1970-01-01
      • 2014-01-14
      • 1970-01-01
      • 2013-07-23
      • 1970-01-01
      相关资源
      最近更新 更多