【问题标题】:How do I make changes to a Django Model after it has been deployed to a webserver?将 Django 模型部署到网络服务器后,如何对其进行更改?
【发布时间】:2013-12-06 02:51:12
【问题描述】:

在开发中,每当我对 Django 应用程序中的底层模型进行更改时,我习惯于:

  1. 停止开发服务器
  2. 在 MySql 中,删除现有数据库
  3. 运行 $>python manage.py syncdb
  4. 通过运行 $>python manage.py runserver 重新启动开发服务器

但是,一旦使用 WSGI 和 Apache 进行部署,我就没有运行开发服务器。因此,我不知道如何停止服务器,只是运行:

$>python manage.py syncdb

似乎没有更新实例化模型的底层 MySql 数据库。那么,除了拆除整个实例之外,我该如何更新我的数据库?

注意:我实现了这个之前我了解了使用“南”的数据库迁移,所以我正在查看原始 Django,我怀疑。

【问题讨论】:

    标签: mysql django model sync


    【解决方案1】:

    Django 没有内置的迁移框架(还没有!),所以没有“用于迁移的原始 django”之类的东西。

    因此,您要么手动执行此操作(使用 SQL 更改表),要么使用 south。

    现在,我的建议是使用south

    【讨论】:

    • 手动,你的意思是改变Mysql中的TABLE吗?如果是这样,我是否还需要以某种方式停止并重新启动服务?
    • @AffableGeek 是的,这就是我的意思,是的。有关第二个问题的答案,请阅读"Storage, Performance, and Concurrency considerations" of this page from the MySQL documentation。另外,请注意south 实际上会向您的数据库发出ALTER TABLEs。
    • @AffableGeek 您可以在事后添加南。你会很高兴你做到了。
    • 这是计划,在研究之后 - 但我也有一个我必须立即完成的截止日期。所以,我立即做了 ALTER TABLE,我今天正在学习南方。
    猜你喜欢
    • 1970-01-01
    • 2013-10-03
    • 2021-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-19
    • 1970-01-01
    • 2011-08-08
    相关资源
    最近更新 更多