【问题标题】:Django Application - Development/Update methodsDjango 应用程序 - 开发/更新方法
【发布时间】:2014-08-05 15:00:00
【问题描述】:

我有一个用 Django 编写的应用程序,现在已经变得相当大,该应用程序全天都在不断使用,并且“即时”进行更改可能会造成中断。

我是软件开发的新手,我不确定开发 django 应用程序的最佳方法是什么,我可以在其中发布分组在一起的更新并发布“版本”。因此,与其在实时环境中更新主应用程序,我还想拥有一个开发服务器,在那里我可以开发和测试任何更新,然后我可以每月推出一次。

我可以复制视图/模型文件并覆盖旧文件,但处理数据库更改的最佳方法是什么?我假设我必须编写 SQL 来添加/删除更改的列并完全覆盖 django_content_type 表?

任何建议表示赞赏!

【问题讨论】:

    标签: django software-distribution


    【解决方案1】:

    我会比 Ashish 更进一步:您必须使用版本控制。您不应该“复制文件”并覆盖旧文件。在 2014 年,没有理由不使用 git(或 Mercurial,甚至 SVN)之类的东西。

    对于数据库更改,您当然应该使用迁移。在即将发布的 1.7 版中,这些都包含在核心 Django 中。在以前的版本中,您需要安装第三方库 South。

    【讨论】:

    • 当然。您“必须”使用版本控制,而不是“可以”。你欠你的用户。
    【解决方案2】:

    源文件可以使用git。您在开发(或测试)服务器上测试您的更改,一旦您满意,将更改推送到 git。在 prod 服务器上,然后拉取更改并重新启动服务器。

    可以使用south 和迁移来完成数据库更改。同样,在将迁移推送到 git 之前,您需要在 dev 或 test 上测试迁移。满意后,您可以将更改移至 prod。

    流程是……

    develop --> test --> commit changes to remote git --> pull changes on production --> migrate --> restart server
    

    在此处查找重要链接

    【讨论】:

    • 唯一担心的是我的代码不打算公开/开源。将私有代码放在此类服务上是否可取 - 称我为偏执狂,但如果它被盗怎么办。
    • 你可以在 github 上拥有一个私人的 git repo(它会花费你每月的会员费)或 bitbucket(它是免费的)。 South 是本地安装。如果是公司代码,那么显然取决于您的公司政策。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-24
    • 2012-10-02
    • 2015-07-25
    • 1970-01-01
    相关资源
    最近更新 更多