注意:使用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。
我不知道为什么,有人可以帮助我吗?
答案 0 :(得分:25)
首先确保在rake db:migrate
之前运行rake db:test:prepare
。
如果不起作用,请将schema.rb
备份到某处,将其删除,然后再运行rake db:schema:dump
,然后再运行rake db:test:prepare
。这将确保您的schema.rb
文件完全反映您的数据库。