gpt4 book ai didi

ruby-on-rails - Rake 在 postgresql 迁移期间中止

转载 作者:行者123 更新时间:2023-11-29 13:35:35 24 4
gpt4 key购买 nike

这里是 Rails/PostgreSQL 新手,在处理在 Rails 中创建 PostgreSQL 项目时遇到了实际问题。

简单地说,我正在关注 Ryan 出色的 Railscast 剧集,尤其是有关部署的剧集。我像这样创建一个新项目:

rails new blog -d postgresql

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

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 更改为我系统的“superuser"我在安装 Homebrew 时选择的(有效);或者
  2. 为我设置的每个单独项目创建一个新的 super 用户(例如在这种情况下是 super 用户“博客”)。

现在,问题是——我应该为我创建的每个项目创建一个 super 用户吗?如果是这样,如何?我问的原因是 Ryan 的 Railscasts 剧集实际上从未提到过这一点,所以我不确定这是否是正确的方法(看起来有点啰嗦),或者我的 PostgreSQL 数据库安装是否有问题(正如我所想的那样, super 用户会在创建应用程序时与数据库一起自动设置)。

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

谢谢!

最佳答案

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

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

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

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

关于ruby-on-rails - Rake 在 postgresql 迁移期间中止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13109997/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com