为 Django 创建开发环境
Posted
技术标签:
【中文标题】为 Django 创建开发环境【英文标题】:Creating a development environment for Django 【发布时间】:2011-07-26 10:47:09 【问题描述】:我们正在使用 Django 启动一个 Web 项目(并且对这方面还很陌生),我想知道设置高效开发环境的最佳方法是什么。
这里有一些信息:
我们是 2 名开发人员,致力于该项目 我们在 Webfacional 上托管了一个开发/生产服务器(使用 apache 服务器) 数据库 (mysql) 托管在此服务器上 我们都在使用 Eclipse 和 Pydev 项目托管在 Github 存储库中到目前为止,我们还没有设置任何本地开发服务器,我们正在通过 Github 将修改同步到服务器。不过确实不太方便……
我们正在考虑在本地设置 apache 服务器,它使用远程数据库,并且只偶尔同步一次。
你觉得会更好吗?
您还有其他想法/其他提示吗?
谢谢!
【问题讨论】:
您可以在服务器上设置一个特定的数据库(镜像生产数据库)用于开发并通过网络连接到它(例如通过 SSH 隧道)。这避免了迁移和保持同步的混乱 附带说明,由于您才刚刚开始,可能还没有与数据库有任何联系,我建议您使用 PostgreSQL 作为您的数据库。我还在 webfaction 上使用 Django 进行开发,在从 MySQL 切换到 PostgreSQL 之后,我的生活变得更加轻松。 Django 的创建者也强烈推荐使用 Postgres。 @Spike 感谢您的建议,我刚开始使用 MySQL,因为来自 php 世界,我更了解它。但我对此没有任何论据。你知道为什么 Postgre 比 MySQL 更受欢迎吗?它是否也具有高度可扩展性?谢谢! @pastylegs 这是个好主意,我应该这样做。谢谢 这里有一个链接,其中一些答案比我能解释得更好:***.com/questions/585549/…。除了他们在那里所说的之外,我发现在使用 Postgres 时使用 django-south 比使用 MySQL 容易得多。我知道还有其他数据库迁移工具也可以更好地与 Postgres 配合使用。 【参考方案1】:不要在开发过程中尝试共享服务器和数据库。你只会感到困惑。
每个开发人员都应该在自己的机器上拥有 MySQL 的本地副本,并按照 mipadi 的建议运行开发服务器。通过 South 管理数据库架构更改,并将数据保存在固定装置中或使用 South 的数据迁移。每个开发人员都应该提交到他们本地版本的 git 存储库,但只有在特定任务完成并且工作时才将更改推送到 Github(或者,更好的是,使用远程分支以便同步更改,但只有在完成时才合并回 master )。
一个好主意是拥有一个像 Hudson/Jenkins 这样的持续集成服务器,在每次提交到 master 之后,运行测试,如果测试通过,则构建一个最新版本的站点,您可以使用它用于功能/用户测试。
编辑添加 开发服务器和任何特定的数据库后端之间没有关系。正如我上面所推荐的,在本地机器上安装 MySQL 或 PostgreSQL 并使用开发服务器非常简单。在最初遇到您在 sqlite3 和生产 MySQL db 之间切换时担心的一些问题之后,我一直以这种方式工作几年。
【讨论】:
谢谢,这正是我需要的那种建议/推荐。但是同样的问题:如果他们不使用相同的网络服务器/数据库,从本地服务器移动到远程服务器不是很痛苦吗?谢谢!【参考方案2】:Django 有自己的development server,可用于本地测试。
【讨论】:
是的,我知道这一点。首先我认为这不是一个好主意,因为它没有使用相同的数据库(SQLite,从我读过的内容)和相同的服务器,所以我担心它会从本地开发迁移到远程开发服务器痛苦。你怎么看? @nbarraille:可能不想对生产数据库运行测试。此外,您可以在开发模式下使用任何(支持的)服务器后端,包括 MySQL。以上是关于为 Django 创建开发环境的主要内容,如果未能解决你的问题,请参考以下文章