【问题标题】:Rake aborted during postgresql migration在 postgresql 迁移期间 Rake 中止
【发布时间】:2012-10-28 15:08:30
【问题描述】:

Rails/PostgreSQL 新手,在 Rails 中创建 PostgreSQL 项目时遇到实际问题。

简而言之,我正在关注 Ryans 出色的 Railscast 剧集,尤其是关于部署的剧集。我创建了一个这样的新项目:

rails new blog -d postgresql

这会生成一个类似于以下内容的database.yml 文件(提取的cmets):

development:
  adapter: postgresql
  encoding: unicode
  database: blog_development
  pool: 5
  username: blog
  password:

test:
  adapter: postgresql
  encoding: unicode
  database: blog_test
  pool: 5
  username: blog
  password:

production:
  adapter: postgresql
  encoding: unicode
  database: blog_production
  pool: 5
  username: blog
  password:

目前看起来不错。

但是,在我的开发机器上,每当我尝试运行 rake db:create:all 时,都会收到类似于以下内容的消息:

rake aborted!
FATAL: role "blog" does not exist

我的理解是,这是因为在创建应用程序时我没有(或者更确切地说,Rails 没有)创建一个名为“blog”的用户。因此,我需要:

  1. 将所有环境的username 更改为我系统的“超级 用户”我在安装 Homebrew 时选择的(有效);或者
  2. 为我设置的每个单独项目创建一个新的超级用户(例如 本例中的超级用户“博客”)。

现在,问题是——我应该为我创建的每个单独项目创建一个超级用户吗?如果是这样,怎么做?我问的原因是 Ryan 的 Railscasts 剧集从未真正提及这一点,所以我不确定这是否是正确的方法(似乎有点冗长),或者我的 PostgreSQL 数据库安装是否有问题(我原以为超级用户会在创建应用程序时与数据库一起自动设置)。

另外,为了使部署更容易,我希望在开发和生产环境中保持整个database.yml 文件相同(尽管我承认对部署了解更少,所以也许这不是理想)。

谢谢!

【问题讨论】:

    标签: ruby-on-rails postgresql rake


    【解决方案1】:

    创建数据库用户由您决定。 Rails 不会创建数据库用户。

    根据您的平台,您可以使用某种数据库管理 GUI 来更轻松地创建用户和管理他们的权限。我使用 PGAdmin,它附带了用于 PostgreSQL 的 Mac OS X 可执行文件。它也适用于其他平台。

    在开发过程中,许多人对所有项目都使用同一个“超级用户”。在生产环境中,我建议您让特定于应用程序的用户拥有最低权限。

    我不完全理解最后一段关于 database.yml 对于 dev 和 prod envs 是相同的,因为这正是重点 - 所有环境的一个文件。您可能不应该在开发和生产中使用相同的凭据。

    【讨论】:

    • 谢谢杰斯珀。我倾向于在开发模式下使用我的“本地”用户名来开发和测试环境。我确实计划在服务器数据库上设置一个单独的生产用户,但是当我在本地运行 db:migrate 时,它​​不会在我的本地计算机上找到该用户,因此它会抛出错误消息(我认为)。我是否也应该在本地设置一个“生产”超级用户,并使用与服务器上的超级用户相同的凭据?
    • 关于超级用户:在您的本地机器上,为了简单和快速的开发,您可以使用超级用户帐户作为您的数据库角色。在生产中,建议您不要使用超级用户帐户作为 Rails 用来访问数据库的帐户。所以在某种程度上,超级用户超出了本次讨论的 Rails 部分的范围。很明显,您接下来需要做的是阅读 PG 中的用户/角色,然后在本地计算机上创建适当的角色。
    猜你喜欢
    • 1970-01-01
    • 2013-06-28
    • 1970-01-01
    • 2013-09-07
    • 1970-01-01
    • 2011-04-21
    • 2012-09-08
    • 2014-08-27
    • 2012-09-18
    相关资源
    最近更新 更多