首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在postgresql迁移过程中Rake中止

在postgresql迁移过程中Rake中止
EN

Stack Overflow用户
提问于 2012-10-28 15:08:30
回答 1查看 572关注 0票数 1

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

简单地说,我正在关注Ryans优秀的Railscast剧集,特别是部署方面的插曲。我创建了一个这样的新项目:

代码语言:javascript
运行
复制
rails new blog -d postgresql

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

代码语言:javascript
运行
复制
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时,我都会收到一条类似于以下内容的消息:

代码语言:javascript
运行
复制
rake aborted!
FATAL: role "blog" does not exist

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

  1. 将用于所有环境的username更改为我的系统安装时选择的“超级用户”(可以工作);或
  2. 为我设置的每个项目创建一个新的超级用户(例如,本例中的超级用户"blog“)。

现在,问题是-我是否应该为我创建的每个项目创建一个超级用户?如果是这样的话,是怎么做的?我问这个问题的原因是,Ryan的Railscast剧集从来没有提到过这一点,所以我不确定这是否是正确的方法(看起来有点冗长),或者我的PostgreSQL数据库安装出现了问题(因为我认为在创建应用程序时,超级用户将与数据库一起自动设置)。

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

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-28 15:18:13

创建数据库用户取决于您。Rails不创建数据库用户。

根据您的平台,您可以使用某种类型的数据库管理GUI,以便更容易地创建用户和管理他们的权限。我使用PGAdmin,这是PostgreSQL的Mac可执行文件附带的。它也适用于其他平台。

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

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13109997

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档