rake db:test:准备不创建所有表

注意:使用Rails 3.0.7,Postgresql 8.4.4-1,rake 0.8.7。

试图让rails测试工作。

命令rake db:test:prepare似乎工作正常 –

 $ rake db:test:prepare -t
 (在/ home / beau /看)
 **调用db:test:prepare(first_time)
 **调用db:abort_if_pending_migrations(first_time)
 **调用环境(first_time)
 **执行环境
 **执行db:abort_if_pending_migrations
 **执行db:test:prepare
 **调用db:test:load(first_time)
 **调用db:test:purge(first_time)
 **调用环境 
 **执行db:test:purge
 **执行db:test:load
 **调用db:schema:load(first_time)
 **调用环境 
 **执行db:schema:load
注意:CREATE TABLE将为串行列“slugs.id”创建隐式序列“slugs_id_seq”
注意:CREATE TABLE / PRIMARY KEY将为表“slugs”创建隐式索引“slugs_pkey”

但是有些表没有被创建。

这些是“开发”表:

 $ psql -d看起来-U admin -c'\ d'

               关系清单
 架构| 名称| 输入| 所有者 
 -------- + ------------------- + ---------- + -------
 公众| 企业| 表| 管理
 公众|  enterprises_id_seq | 序列| 管理
 公众| 类别| 表| 管理
 公众|  categories_id_seq | 序列| 管理
 公众|  schema_migrations | 表| 管理
 公众|  slu | 表| 管理
 公众|  slugs_id_seq | 序列| 管理
 (7排)

rake创建的表:db:为测试环境做准备 –

 $ psql -d looking_test -U admin -c'\ d'
               关系清单
 架构| 名称| 输入| 所有者
 -------- + ------------------- + ---------- + -------
 公众| 类别| 表| 管理
 公众|  schema_migrations | 表| 管理
 公众|  slu | 表| 管理
 公众|  slugs_id_seq | 序列| 管理
 (4排)

正如您所看到的,它创建了一些表,但没有创建business,business_id_seq或categories_id_seq。

我不知道为什么,有人可以帮助我吗?

首先确保在rake db:test:prepare之前运行rake db:migrate

如果这不起作用,请在某处备份schema.rb ,删除它,然后在运行rake db:test:prepare之前运行rake db:test:prepare rake db:schema:dump 。 这将确保您的schema.rb文件完全反映您的数据库。