0

我的问题:我已经设置了 Rails 应用程序的开发、测试环境以使用 postgresql 数据库。现在我如何验证它是否正常?

注意:我是 Rails 的初学者并使用数据库

我做了什么来验证

  1. 我跟着railcast从默认 sqlite3 迁移到 postgresql。
  2. 我启动了 rails 控制台并使用创建了一个用户

    User.create(名称:“Anil Bande”,电子邮件:“anil@gmail.com”,密码:“foobar”,password_confirmation:“foobar”)

  3. 从输出来看,用户似乎已创建。为了验证我$ User.all在 rails 控制台上运行并且输出显示了我在步骤 (2) 中创建的对象

  4. 现在我想从 postgresql 提示符中看到这一点。所以我做了$psql sample_app_development,出现了 psql 提示符。

  5. psql>> \d在 psql 上做了一个列出数据库中所有表的操作。确实如此,并且我感兴趣的“用户”表也出现了。

  6. 现在我做了一个psql>> select * from users,但没有结果。提示刚刚返回。

现在这是我的困惑。步骤(6)什么都没有显示。但在 Rails 控制台中,看起来用户已创建并保存在数据库中。(a) 为什么会这样?(b) 如何验证我为设置开发和测试环境所做的一切是否正确?

4

3 回答 3

1

我无法评论 Rails 部分,但为此:

现在我做了一个 psql>> select * from users ,但没有结果。提示刚刚返回。

你忘了用 a 结束语句;

当你完成一个语句的输入时,你需要告诉 psql,因为它允许一个语句跨越多行。请注意提示如何从psql=>变为psql->以指示 psql 正在等待更多。

所以如果你输入

psql=> select * from users;

你应该没事。

(要明确一点:psql作为提示的一部分只是一个示例。真正的提示将包含您连接到的数据库的名称。要查找的重要内容是=>and ->

于 2013-02-09T09:36:08.897 回答
0

您是否已在控制台中在数据库上运行迁移?

rake db:migrate

如果是这样,还要确保您的数据库配置 yml 文件具有正确的信息 ->

为您的数据库列出的用户、密码、本地主机等,例如

development:
  adapter: postgresql
  encoding: unicode
  database: pg2_development
  pool: 5
  username: postgres
  password: root
  host: localhost

--> 运行 rails server ,然后转到 localhost:3000/user 来检查结果

于 2013-02-09T09:30:34.047 回答
0

如果您刚刚开始使用 postgres,您可能会发现使用pgadmin 之类的 GUI 界面可以更好地为您的普通管理员提供服务

例如,它会告诉你结尾 ';' 失踪。它仍然允许您直接进入 psgl 命令行。

于 2013-02-13T04:39:38.550 回答