1

這是我目前的設置:谷歌App Engine開發和生產環境設置

GitHub倉庫,dev的分支。 myappdev.appspot.com(不是真正的URL) myapp.appspot.com(不是真正的URL)

應用程序寫在GAE的Python 2.7,使用Django,nonrel

發展是一個本地開發服務器上執行。當我準備發佈到開發版時,我增加版本,提交併運行「manage.py上傳」到myappdev.appspot.com

一旦測試滿意,我將dev的更改合併到主repo 。然後運行「manage.py upload」將主repo代碼上傳到myapp.appspot.com域。

這個設置好嗎?以下是我遇到的一些問題。 1)我是git的新手,所以有時候我忘了添加文件,並且提交不會通知我。所以我將代碼部署到開發工作,但不符合開發分支。 (這是不好的做法)。

2)git倉庫中的數據存儲文件導致問題。合併二進制文件?在本地計算機之間遷移該文件是否可行,還是會弄亂?

3)我應該使用每個版本的「manage.py upload」到dev或prod環境,還是有更好的方法來做到這一點? Heroku看起來好像可以從GitHub中拉出來。現在我這樣做的方式似乎有太多的人爲錯誤的空間。

有關如何改進我的設置的任何整體建議?

謝謝!

回答

0

我在一個非常類似的設置,雖然我仍然運行py2.5,django-nonrel。

1)我通常使用'git status'或'git gui'來查看我是否忘記檢查文件。

2)我個人不檢查我的數據存儲。你是否熟悉.gitignore?這是一個文本文件,其中列出了git在運行'git status'和其他函數時忽略的文件。我放入.gaedata以及.pyc和備份文件。

要管理數據庫,我使用「python manage.py dumpdata> file」將數據庫轉儲爲json編碼文件。然後我可以使用「python manage.py loaddata」重新加載它。

3)我不知道從git的任何部署。你可以編寫一個小python腳本來檢查部署之前git是否是最新的。就個人而言,我在測試前部署測試以確保它正常工作。

+0

謝謝,這一切都非常有幫助。我肯定會開始在數據存儲上執行.gitignore,然後從json編碼文件中加載數據庫。我將把問題留待另外一兩天,看看其他人是否有一些建議。 – aglassman 2012-03-21 13:24:42