2016-11-05 31 views
2

我有一個龐大的數據庫,在這些表上有很多表和很多索引。每次運行遷移時,都會生成schema.rb文件,除非包含任何索引。新的表格和列添加正常。如果在遷移後手動將add_index行重新添加到schema.rb文件,那麼它可以正常工作,但在每次遷移後執行此操作都是一大麻煩。bundle exec rake db:migrate - schema.rb沒有索引重新生成

我幾個月來一直在處理這個問題,一直沒有找到任何解決方案或解決方法。有誰知道可能會發生什麼?

裏使用Postgres &的Rails 3

+0

你可以通過生成一個遷移文件來嘗試,只是爲所有的表添加indeally到add_index:users,[:email,:first_name,:last_name]'等等。然後運行遷移 – sa77

+0

看起來索引已經在表格上(當我通過psql連接並運行'\ d table_name')。但由於某些原因,它只是永遠不會寫入到schema.rb文件中。 –

+0

FWIW,我嘗試用add_index運行遷移,生成的schema.rb文件仍然不包含索引。 –

回答

2

在Rails 3個指標沒有在schema.rb文件顯示。

以下給出的是來自rails 3文檔的shema dump的屏幕截圖。沒有顯示索引。

This is screenshot of schem file from rails documentation

我試圖安裝Rails 3 Postgres的,使用MySQL和Rails 3和SQLite Rails 3中。所有索引都添加到數據庫中,但在schema.rb中看不到它們。

只有一種方法可以通過在文件中手動添加索引來在schema.rb中顯示它們或者您可以保留沒有索引的scehma.rb。當我們運行rake db:migrate時,所有索引都被添加到數據庫中。如果你想要升級到Rails 4或更高版本,你將永遠不會遇到這個問題。

相關問題