bundle exec rake db:migrate - schema.rb在没有索引的情况下重新生成

时间:2016-11-05 18:48:58

标签: ruby-on-rails postgresql ruby-on-rails-3 migration

我有一个包含大量表格的大型数据库,并且这些表格上有许多索引。每次运行迁移时,都会生成schema.rb文件,但不包括任何索引。新表和列添加正常。如果我在迁移后手动将add_index行重新添加到schema.rb文件中,它可以正常工作,但在每次迁移后执行此操作是一个很大的麻烦。

我几个月来一直在处理这个问题,但却找不到任何解决方案或解决方法。有谁知道可能会发生什么?

使用Postgres& Rails 3。

1 个答案:

答案 0 :(得分:2)

在Rails 3中,索引不会显示在schema.rb文件中。

下面是rails 3文档中shema dump的截图。没有显示索引。

This is screenshot of schem file from rails documentation

我曾尝试使用Postgres安装Rails 3,使用Mysql和Rails 3安装Rails 3和SQLite。所有索引都添加到数据库中,但您无法在schema.rb中看到它们。

通过手动向文件中添加索引,只有一种方法可以在schema.rb中显示它们。或者您可以使scehma.rb不带索引。运行rake db:migrate时,所有索引都会添加到数据库中。如果你想要,你可以升级到4或以上的rails,你永远不会遇到这个问题。