"No relations found" 在 rails db:migrate 成功后的 psql 中

"No relations found" in psql after rails db:migrate succeeds

作为一个 Rails 新手,我正在按照 railscast #342 中的说明在我的 Mac.

上设置一个 postgres 数据库连接

我用

创建了一个新的 rails 项目
$ rails new blog -d postgresql

我编辑了数据库yaml文件来设置用户名和密码。

我使用 psql 添加了新的用户和密码,并授予它创建 tables 的权限:alter user blog create db

我通过

创建了数据库
rake db:create:all

它成功了,在 psql 中,执行 \l 列出模式,我看到所有三个模式 blog_test、blog_development 和 blog_production

然后我做

$ rails g scaffold article name content:text

看起来不错

然后我做

$ rake db:migrate

我收到显示成功的消息:

$ rake db:migrate

== 20150701220010 CreateArticles: migrating ===================================
-- create_table(:articles)
   -> 0.0128s
== 20150701220010 CreateArticles: migrated (0.0129s) ==========================

我设置搜索路径以查看模式:

set search_path to lcuff,public,blog_development;

显示search_path:

search_path
---------------------------------
 lcuff, public, blog_development

但试图找到 table、

# \d

未找到关系。

我已经完成 db:migrate VERSION=0,它成功地报告它删除了 table,然后我用 db:migrate 再次创建它,它报告成功。

如果第一部分在实际创建模式的地方不起作用,我想我会以某种方式指向错误的数据库。

想法?

您应该首先连接数据库 在获取表格之前。

\connect blog_development

然后尝试给出 \d 以列出所有表。

您也可以尝试 \dt

示例(在我的项目中测试):

\connect my_db
You are now connected to database "my_db" as user "postgres".

my_db=# \d

                    List of relations
 Schema |             Name              | Type  |  Owner   
--------+-------------------------------+-------+----------
 public | access_managements            | table | postgres
 public | amenities                     | table | postgres
 public | city_coordinates              | table | postgres
 public | coapplicants                  | table | postgres

Source