为Django创建开发环境

为Django创建开发环境,django,apache,development-environment,Django,Apache,Development Environment,我们正在用Django启动一个web项目(这是一个非常新的项目),我想知道设置一个高效的开发环境的最佳方法是什么 以下是一些信息: 我们是该项目的两名开发人员 我们在Web派系上有一个开发/生产服务器(使用apache服务器) 数据库(MySQL)托管在此服务器上 我们都在使用Eclipse和Pydev 该项目位于Github存储库中 到目前为止,我们没有设置任何本地开发服务器,我们正在通过Github将修改同步到服务器。但这并不是很方便 我们考虑在本地设置apache服务器,使用远程数据库

我们正在用Django启动一个web项目(这是一个非常新的项目),我想知道设置一个高效的开发环境的最佳方法是什么

以下是一些信息:

  • 我们是该项目的两名开发人员
  • 我们在Web派系上有一个开发/生产服务器(使用apache服务器)
  • 数据库(MySQL)托管在此服务器上
  • 我们都在使用Eclipse和Pydev
  • 该项目位于Github存储库中
到目前为止,我们没有设置任何本地开发服务器,我们正在通过Github将修改同步到服务器。但这并不是很方便

我们考虑在本地设置apache服务器,使用远程数据库,并且偶尔只同步一次

你认为这样会更好吗

你有其他的想法/额外的建议吗


谢谢

Django有自己的,您可以用于本地测试。

在开发过程中不要尝试共享服务器和数据库。你只会感到困惑

每个开发人员都应该在自己的机器上拥有MySQL的本地副本,并按照mipadi的建议运行开发服务器。通过South管理db架构更改,并将数据保留在装置中或使用South的数据迁移。每个开发人员都应该提交他们的本地版本的git存储库,但只有在特定任务完成并正常工作时才将更改推送到Github(或者,更好的做法是,使用远程分支以便同步更改,但在完成后才合并回主控更改)

一个好主意是拥有一个像Hudson/Jenkins这样的持续集成服务器,在每次提交给master之后,运行测试,如果测试通过,则构建一个站点的最新版本,可用于功能/用户测试


编辑以添加开发服务器与任何特定数据库后端之间没有关系。正如我上面所建议的,在本地机器上安装MySQL或PostgreSQL并使用开发服务器来解决这个问题非常简单。在最初遇到在sqlite3和生产MySQL数据库之间切换时您担心的一些问题之后,我已经以这种方式工作了几年。

您可以在服务器上设置一个特定的数据库(镜像生产数据库)进行开发,并通过网络连接到它(例如通过SSH隧道)。这避免了混乱的迁移和保持同步,因为您刚刚开始,可能还没有与数据库建立任何联系,我建议使用PostgreSQL作为您的数据库。我还在WebPosition上使用Django进行开发,从MySQL切换到PostgreSQL后,我的生活变得轻松多了。Django的创建者也强烈推荐使用Postgres。@Spike谢谢你的建议,我刚开始使用MySQL,因为来自PHP世界的我对它更了解。但我对此没有任何理由。你知道为什么Postgre比MySQL更受欢迎吗?它也是高度可伸缩的吗?谢谢@这是个好主意,我应该这样做。Thanksher是一个链接,其中的一些答案比我能更好地解释它:。最重要的是,我发现在使用Postgres时使用django south比使用MySQL容易得多。我知道还有其他数据库迁移工具也可以更好地用于Postgres。是的,我知道这一点。起初我认为这不是一个好主意,因为它没有使用相同的DB(SQLite,据我所知)和相同的服务器,所以我担心这会使从本地开发迁移到远程开发服务器变得痛苦。你觉得怎么样?@nbarlaille:可能无论如何都不想对生产数据库进行测试。此外,您可以在开发模式中使用任何(受支持的)服务器后端,包括MySQL。谢谢,这正是我需要的建议/推荐。但同样的问题是:如果本地服务器不使用相同的Web服务器/DB,那么从本地服务器移动到远程服务器不是很痛苦吗?谢谢