1

我在亞馬遜的數據庫目前只有一點點數據(我正在製作一個網絡應用程序,但它仍在開發中),我正在刪除它,對模式進行更改並重新恢復。過去幾次我已經完成了這個工作,我完全重新創建了我的elasticbeanstalk應用程序,但似乎有更好的方法。在我的本地機器上,我將採取以下步驟:如何刪除表格並使用Elasticbeanstalk在亞馬遜RDS中重新創建?

  1. 「DROPDB數據庫名稱」,然後 「CREATEDB數據庫名稱」
  2. 蟒蛇manage.py makemigrations
  3. 蟒蛇manage.py遷移

有沒有這樣的事情,我可以在亞馬遜上做刪除我的數據庫並重新聯機而不刪除整個應用程序?當我剛剛嘗試刪除RDS實例並創建一個新實例時,我遇到了elasticbeanstalk的問題。

回答

3

完成此操作的最簡單方法是,通過SSH連接到一個已訪問RDS DB的EC2實例,然後從那裏連接到該DB。確保您的Python腳本可以讀取您的應用程序配置以訪問配置的數據庫,或爲數據庫主機名添加參數。要刪除並創建數據庫,只需添加必要的參數即可連接到數據庫。例如:

$ createdb -h <RDS endpoint> -U <user> -W ebdb

您還可以創建一個RDS快照時數據庫是空的,並使用RDS實例行動恢復在時間遷移最新快照到點。

+0

感謝您的評論,它幫助我走上了正確的道路。我能夠刪除並創建數據庫,但現在遇到了運行manage.py的問題。當我嘗試在我的EC2實例中運行manage.py時,找不到我的環境變量 - 關於這可能是爲什麼的任何想法?我檢查了/ opt/python/current/env並且可以看到這些變量,但是當我進入python shell並運行'os.environ'時,它們未被列出。 – TH22

+0

環境變量將爲您的應用程序加載,但不會在您進入實例時加載。嘗試運行'source/opt/python/run/venv/bin/activate && source/opt/python/current/env',或者至少後者加載你的環境變量。 – quezacoatl