簡體   English   中英

是否可以在不破壞現有數據庫的情況下部署到Heroku? Ruby on Rails

[英]Can I deploy to Heroku without destroying existing database? Ruby on Rails

我已經對我的應用進行了相當大的升級。 目前,我在Heroku上部署了較舊的版本。 問題是在使我的應用程序更加模塊化的過程中,我添加/刪除了很少的遷移。 我不想丟失在部署更新時已經在Heroku上注冊的用戶表。 有人可以提供有關在升級應用程序時如何保留我的用戶表的任何提示嗎? 我確實安裝了備份附件,但是不知道該文件如何處理。

自從上次出現在heroku服務器上以來,您應該更仔細地設置遷移。 因此,當:

  1. 您要添加一列,只需設置默認值

  2. 您刪除該列,然后將數據導出到(例如)YAML,並將其存儲在tmp /中

  3. 您正在通過添加和刪除其中的一部分來重構部分庫,在遷移時,請仔細地將所需數據從舊列(准備刪除)復制到新創建的列中。

如果您擔心部署,那么我認為您可能需要宣布遷移破產。

  • 創建一個新的遷移,該遷移將刪除當前架構並將新數據庫架構復制到其中
  • 將數據庫的內容轉儲為CSV( https://coderwall.com/p/jwtxjg/simple-export-to-csv-with-postgres )或使用Rails以其他方式轉儲(YAML等)
  • 編寫一個Rake任務以將數據轉儲解析到新模式中
  • 在Heroku Postgres上設置一個新數據庫(這不會刪除舊數據)
  • 在本地進行試運行以確保一切正常
  • 將新數據庫升級到DATABASE_URL
  • 部署,遷移,運行Rake任務

不太好,如果出現錯誤,您也無法輕易回退。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM