在rails db:migrate成功之后,在psql中找不到"关系"

Leo*_*ard 3 postgresql rails-migrations ruby-on-rails-4

作为Rails新手,我按照railscast#342中的说明在我的Mac上设置postgres数据库连接.

我创建了一个新的rails项目

$ rails new blog -d postgresql
Run Code Online (Sandbox Code Playgroud)

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

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

我创建了db via

rake db:create:all
Run Code Online (Sandbox Code Playgroud)

它成功并在psql内部,做\ l列出模式,我看到所有三个模式blog_test,blog_development和blog_production

然后我做

$ rails g scaffold article name content:text
Run Code Online (Sandbox Code Playgroud)

一切看起来都不错

然后我做

$ rake db:migrate
Run Code Online (Sandbox Code Playgroud)

我收到消息显示成功:

$ rake db:migrate

== 20150701220010 CreateArticles: migrating ===================================
-- create_table(:articles)
   -> 0.0128s
== 20150701220010 CreateArticles: migrated (0.0129s) ==========================
Run Code Online (Sandbox Code Playgroud)

我设置我的搜索路径来查看架构:

set search_path to lcuff,public,blog_development;
Run Code Online (Sandbox Code Playgroud)

show search_path:

search_path
---------------------------------
 lcuff, public, blog_development
Run Code Online (Sandbox Code Playgroud)

但试图找到桌子,

# \d
Run Code Online (Sandbox Code Playgroud)

没有找到关系.

我已经完成了db:migrate VERSION=0它并且它成功报告它丢弃了表,然后我再次创建它db:migrate并报告成功.

如果第一部分没有工作,它实际上创建了模式,我想我会以某种方式指向错误的数据库.

想法?

Pav*_*van 7

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

\connect blog_development
Run Code Online (Sandbox Code Playgroud)

然后尝试\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
Run Code Online (Sandbox Code Playgroud)

资源