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

Ruby on rails bundle exec rake db:migrate--schema.rb在没有索引的情况下重新生成,ruby-on-rails,postgresql,ruby-on-rails-3,migration,Ruby On Rails,Postgresql,Ruby On Rails 3,Migration,我有一个大型数据库,其中有大量的表和这些表上的许多索引。每次运行迁移时,schema.rb文件都会很好地生成,只是没有包含任何索引。新的表和列被很好地添加。如果我在迁移后手动将add_索引行重新添加到schema.rb文件中,效果会很好,但每次迁移后都要这样做是一件非常麻烦的事情 我已经处理这个问题好几个月了,还没有找到任何解决方案或解决办法。有人知道会发生什么吗 使用Postgres和Rails 3。Rails 3中的索引不会显示在schema.rb文件中 下面是rails 3文档中shema

我有一个大型数据库,其中有大量的表和这些表上的许多索引。每次运行迁移时,schema.rb文件都会很好地生成,只是没有包含任何索引。新的表和列被很好地添加。如果我在迁移后手动将add_索引行重新添加到schema.rb文件中,效果会很好,但每次迁移后都要这样做是一件非常麻烦的事情

我已经处理这个问题好几个月了,还没有找到任何解决方案或解决办法。有人知道会发生什么吗


使用Postgres和Rails 3。

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

下面是rails 3文档中shema转储的屏幕截图。没有显示任何索引

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


只有一种方法可以在
schema.rb
中通过手动向文件添加索引来显示它们,或者您可以将
scehma.rb
保留为不带索引。当我们运行
rakedb:migrate
时,所有索引都被添加到数据库中。如果您愿意,您可以升级到rails 4或更高版本,您将永远不会遇到这个问题。

您可以尝试生成一个迁移文件,只向所有表添加索引
添加索引:users、[:email、:first\u name、:last\u name]
等等..然后运行迁移。看起来索引已经在表上了(当我通过psql连接并运行'\d table_name'时)。但由于某些原因,它从未写入schema.rb文件。FWIW,我尝试使用add_index运行迁移,生成的schema.rb文件仍然不包含索引。我假设您已经在
config/application.rb
、初始值设定项和环境文件中查找任何突出的内容?如果没有,您将查找类似于
config.active\u record的内容。关于\u schema的内容
@D-Nice如果我们可以看到架构和迁移,调试会更容易。您是否使用add\u index或index:true?index:true对引用有效,属于但不属于add\u列。add\u index通常可以工作。您可以共享sch吗ema和样本迁移?