【问题标题】:rake db:test:prepare not creating all tablesrake db:test:prepare 不创建所有表
【发布时间】:2011-08-17 16:37:52
【问题描述】:

注意:使用 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/looked) ** 调用 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' 关系列表 架构 |姓名 |类型 |所有者 --------+-------+------------+------ 公共 |企业|表|行政 公共 | business_id_seq |序列 |行政 公共 |类别 |表|行政 公共 | categories_id_seq |序列 |行政 公共 |架构迁移 |表|行政 公共 |蛞蝓 |表|行政 公共 | slugs_id_seq |序列 |行政 (7 行)

rake:db:prepare 为测试环境创建的表 --

$ psql -d 查看测试 -U admin -c '\d' 关系列表 架构 |姓名 |类型 |所有者 --------+-------+------------+------ 公共 |类别 |表|行政 公共 |架构迁移 |表|行政 公共 |蛞蝓 |表|行政 公共 | slugs_id_seq |序列 |行政 (4 行)

如您所见,它创建了一些表,但没有创建企业、businesss_id_seq 或 categories_id_seq。

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

【问题讨论】:

  • 您的架构文件是什么样的? RAILS_ROOT/db/schema.rb
  • 你的schema.rb文件是什么样的?
  • 好的,我刚刚检查了一下,表在架构文件中不知何故丢失了。
  • 这是我最后一次迁移。感谢您的帮助

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


【解决方案1】:

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

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

【讨论】:

  • 谢谢。我通过回滚上次迁移来修复 schema.rb 文件。不过,不确定该迁移有什么问题。如果我无法弄清楚,我会问另一个问题。感谢您的帮助。
  • 为我工作。谢谢。正如我现在所看到的,合并恢复了导致问题的 schema.rb 中的一些更改。顺便说一句:没有必要删除 schema.rb。
猜你喜欢
  • 2016-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-13
  • 1970-01-01
  • 2017-02-28
  • 2013-02-16
  • 2013-07-30
相关资源
最近更新 更多