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

时间:2011-05-03 12:37:35

标签: ruby-on-rails ruby-on-rails-3 rake

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

尝试让rails测试工作。

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

$ rake db:test:prepare -t
(in /home/beau/looked)
** Invoke db:test:prepare (first_time)
** Invoke db:abort_if_pending_migrations (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute db:abort_if_pending_migrations
** Execute db:test:prepare
** Invoke db:test:load (first_time)
** Invoke db:test:purge (first_time)
** Invoke environment 
** Execute db:test:purge
** Execute db:test:load
** Invoke db:schema:load (first_time)
** Invoke environment 
** Execute db:schema:load
NOTICE:  CREATE TABLE will create implicit sequence "slugs_id_seq" for serial column "slugs.id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "slugs_pkey" for table "slugs"

但有些表尚未创建。

这些是“开发”表:

$ psql -d looked -U admin -c '\d'

               List of relations
 Schema |       Name        |   Type   | Owner 
--------+-------------------+----------+-------
 public | businesses        | table    | admin
 public | businesses_id_seq | sequence | admin
 public | categories        | table    | admin
 public | categories_id_seq | sequence | admin
 public | schema_migrations | table    | admin
 public | slugs             | table    | admin
 public | slugs_id_seq      | sequence | admin
(7 rows)

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

$ psql -d looked_test -U admin -c '\d'
               List of relations
 Schema |       Name        |   Type   | Owner
--------+-------------------+----------+-------
 public | categories        | table    | admin
 public | schema_migrations | table    | admin
 public | slugs             | table    | admin
 public | slugs_id_seq      | sequence | admin
(4 rows)

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

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

1 个答案:

答案 0 :(得分:25)

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

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