作为 Rails 新手,我按照 railscast #342 中的说明在我的 Mac 上设置了一个 postgres 数据库连接。
我用
创建了一个新的 Rails 项目$ rails new blog -d postgresql
我编辑了数据库yaml文件来设置用户名和密码。
我使用 psql 添加新用户和密码,并授予它创建表的权限: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
---------------------------------
lcuff, public, blog_development
但是试图找到表,
# \d
未找到关系。
我已经完成了 db:migrate VERSION=0
并且它成功地报告它删除了表,然后我用 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
关于postgresql - "No relations found"在 rails db :migrate succeeds 之后的 psql 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31172742/