【问题标题】:Minimum privileges to run a rails db migration with PostgreSQL使用 PostgreSQL 运行 rails db 迁移的最低权限
【发布时间】:2015-08-26 09:07:16
【问题描述】:

我注册了一个网络主机计划,这样我就可以发布我的 Rails 应用程序。他们为我提供了一个服务器并可以访问它。这是一个共享的 CentOS Linux 服务器,我可以访问它的 bash。

我试图将我的数据库模式加载到他们提供的 postgres 数据库 (v8.4) 中,但这样做时会出错。 当我执行时:

 RAILS_ENV=production rake db:schema:load

产生以下错误:

-- enable_extension("plpgsql")
rake aborted!
ActiveRecord::StatementInvalid: PG::SyntaxError: ERROR:  syntax error at or near "EXTENSION"
LINE 1: CREATE EXTENSION IF NOT EXISTS "plpgsql"
               ^
: CREATE EXTENSION IF NOT EXISTS "plpgsql"
/home/user/path-to-app/db/schema.rb:17:in `block in <top (required)>'
/home/user/path-to-app/db/schema.rb:14:in `<top (required)>'
PG::SyntaxError: ERROR:  syntax error at or near "EXTENSION"
LINE 1: CREATE EXTENSION IF NOT EXISTS "plpgsql"
               ^
/home/user/path-to-app/db/schema.rb:17:in `block in <top (required)>'
/home/user/path-to-app/db/schema.rb:14:in `<top (required)>'
Tasks: TOP => db:schema:load
(See full trace by running task with --trace)

因为 web-host 提供商不允许很多 db 权限,并且由于我对 PostgreSQL 不熟悉,我更喜欢在 rails 方面改变一些东西的解决方案......

我可以在 Rails 方面做些什么来解决(或希望解决)这个问题吗?

如果从 rails 方面什么都做不了,我将不得不具体说明必要的特权。

这个 PostgreSQL EXTENSION object 似乎需要我的数据库用户没有的权限...

在 PostgeSQL 中运行 db 迁移的 rails 数据库用户的最低权限是多少?

更新

这是关于 PostgreSQL 8.4 的,根据这里的 cmets 没有“CREATE EXTENSION”命令。

【问题讨论】:

标签: ruby-on-rails ruby postgresql


【解决方案1】:

CREATE EXTENSION 是在 Postgres 9.1 中引入的,我建议你运行迁移:

RAILS_ENV=production bundle exec rake db:migrate

【讨论】:

    猜你喜欢
    • 2018-05-30
    • 1970-01-01
    • 2020-09-11
    • 1970-01-01
    • 2013-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-22
    相关资源
    最近更新 更多