我想要一個遷移來創建一個現有表的克隆,只需將名稱加上後綴,包括原始表中的所有索引。如何通過Rails遷移來克隆數據庫表?
所以有一個「快照」表,我想創建「snapshots_temp」作爲表的精確副本(不是數據,只是表模式,但包括索引)。
我可以從schema.rb文件中複製粘貼該塊並手動重命名它。
但是,如果schema.rb中的定義仍然準確,我不確定在應用此遷移時。另一位開發人員可能已經更改了表格,我不想更新我的遷移腳本。
那麼我怎樣才能在運行時得到表的架構?從本質上講,'rake schema:dump'如何對錶進行逆向工程,以便我可以在遷移過程中執行相同的操作? (但改變表名)。
良好的通話。 「使用LIKE根據另一個表的定義創建一個空表,包括原始表中定義的任何列屬性和索引」http://dev.mysql.com/doc/refman/5.1/en/create-table「。 html –
適用於MySQL(也可能是大多數數據庫),但如果使用Sqlite,則無法工作。我在開發環境中遇到了這個問題。生產很好(它是MySQL)。 – MiniQuark
非常感謝。請注意,您複製的表將獲取索引,但不包含任何外鍵。你將不得不分別重新創建它們。 –