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