【问题标题】:can I share a database between Django 1.11 and Django 2.x?我可以在 Django 1.11 和 Django 2.x 之间共享数据库吗?
【发布时间】:2020-02-28 21:36:04
【问题描述】:

Django 1.x 和 2.x 可以共享同一个数据库,还是 2.x 对数据库进行更改会破坏 1.x?

我的应用目前在 Python 3.6 + Django 1.11 上运行。我需要升级到 Django 2.x。

我想做的是并排运行两个应用程序:所以“www.example.com”是我的生产站点,运行 Django 1.11。我想在“beta.example.com”上为受信任的用户运行一个并行站点,这将是同一个站点,但使用 Django 2.x 实现。我希望这两个站点共享同一个(Postgres)数据库,以便

  • 在 Beta 版网站上完成的工作是“真实的”并且会持续下去
  • 如果无法在 beta 站点中完成某些操作,我可以告诉用户使用现有的生产站点
  • 我可以通过更改 DNS 条目将我的测试版网站推广到生产环境。

(我的下一个问题是“Django 1.x 和 3.x 可以共享同一个 Postgres 数据库吗?”)

【问题讨论】:

    标签: django


    【解决方案1】:

    是的,只需将 Django 1.11 升级到 Django 2.0(或 3.0)就没有问题,除了您正在使用的核心/contrib 模型中的可能迁移之外,auth 是最可能的迁移。不过,令人高兴的是,the last migrations in auth 似乎只是延长了字段,这在通常的用例中可能不会改变太多。

    【讨论】:

      【解决方案2】:

      您可以与两个 Django 实例,甚至不同的软件共享同一个数据库,只要您不更改已在使用的表即可。如果您的 beta 应用程序要使用不同的类名(它们是数据库中的表名),那么您很好

      尽管在实践中这是一个非常糟糕的主意。我建议你在 Django 中使用 Heroku 进行开发。它是免费、简单和快速的设置,您可以在他们提供的 URL 上测试您的应用程序。一旦满意,您就可以迁移您的网站, 阅读本文进行设置
      https://devcenter.heroku.com/categories/working-with-django

      【讨论】:

        猜你喜欢
        • 2011-06-30
        • 1970-01-01
        • 2013-09-24
        • 2011-09-16
        • 2012-01-10
        • 2012-05-16
        • 2018-08-28
        • 2018-05-01
        • 1970-01-01
        相关资源
        最近更新 更多