在rails db:migrate success

时间:2015-07-01 22:27:51

标签: postgresql ruby-on-rails-4 rails-migrations

作为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再次创建它并报告成功。

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

想法?

1 个答案:

答案 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

Source