作为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:
search_path
---------------------------------
lcuff, public, blog_development
但是试图找到桌子,
# \d
没有发现任何关系。
我已完成db:migrate VERSION=0
并成功报告它删除了表格,然后我使用db:migrate
再次创建它并报告成功。
如果第一部分没有工作,它实际上创建了模式,我想我会以某种方式指向错误的数据库。
想法?
答案 0 :(得分:7)
在获取表格之前,您应首先 连接 到 数据库 。
\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