【发布时间】: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”的用户。因此,我需要:
- 将所有环境的
username更改为我系统的“超级 用户”我在安装 Homebrew 时选择的(有效);或者 - 为我设置的每个单独项目创建一个新的超级用户(例如 本例中的超级用户“博客”)。
现在,问题是——我应该为我创建的每个单独项目创建一个超级用户吗?如果是这样,怎么做?我问的原因是 Ryan 的 Railscasts 剧集从未真正提及这一点,所以我不确定这是否是正确的方法(似乎有点冗长),或者我的 PostgreSQL 数据库安装是否有问题(我原以为超级用户会在创建应用程序时与数据库一起自动设置)。
另外,为了使部署更容易,我希望在开发和生产环境中保持整个database.yml 文件相同(尽管我承认对部署了解更少,所以也许这不是理想)。
谢谢!
【问题讨论】:
标签: ruby-on-rails postgresql rake