2012-07-17 21 views
0

我有一個應用程序,它是在發展中(現場,測試,開發)複製環境之間的一條記錄

的不同階段,當測試人員報告與測試數據庫的問題,他們將指定一個用戶ID是唯一在測試數據庫,這使得很難重現開發中的問題(在某些情況下)

我想能夠拉出所有綁定到表中的特定id(包括來自其他表中的對象通過外鍵鏈接)並能夠將該數據導入開發數據庫。

如何做到這一點?

  • 可我深深複製所有鏈接的關係?
  • 我可以導出對象,然後將其導入
  • 我可以訪問兩個數據庫從遷移腳本?

回答

0

你想達到什麼不是一件簡單的事情。

如果你想拔出所有關於用戶的信息,你必須作出這樣的訪問他所有的信息和相關信息,或直接從數據庫表中提取信息的腳本。

如果你喜歡第一種選擇,你必須仔細看的關係,並使用ActiveRecord提取所有的人。

也許這將是對你有用使用「屬性」的方法,如果你有,例如一個用戶模型和@user例如,你可以這樣做:

user_attributes = @user.attributes 

,並提取他的屬性哈希,以後你可以做到以下幾點:

User.create(user_attributes) 

創建具有相同屬性的用戶,但你將有protected_attributes或關係問題。

也許你想跟隨戰略不是解決問題的最佳。

你不能用ssh訪問測試環境嗎?這樣你可以檢查數據庫並按原樣查看問題。

+0

我可以通過ssh訪問,所以也許更好的方法是使用純sql(提供的外鍵約束設置正確) – 2012-07-17 09:00:30

+0

但是,如果您可以訪問測試環境,是不是可以看到測試日誌或訪問測試鐵軌控制檯?也許這將足以檢查問題,順便說一句,不加載整個測試數據庫的備份一個機會? – 2012-07-17 09:04:41

+0

完整備份是可能的,但它需要一整天才能導出。 – 2012-07-17 09:19:44