goj*_*omo 20 django heroku django-south
在Heroku上,只要您推送新代码,即使尚未应用基础数据库架构添加/更改(通过syncdb或南迁移),Web服务实例也会重新启动.
在许多情况下,这可能只会导致无害的错误,并且很快就会运行syncdb/migrate.但是我担心在某些情况下,新代码可能会在迁移前数据库中进行意外更改.
什么是安全抵御这种风险的正确方法?
一种技术可能是将syncdb/migrate添加到Procfile,以便在web重启之前运行.但是,在多个实例的情况下,或者甚至可能是一个旧的代码实例一直运行直到一个新的代码实例被知道的情况下,仍然存在一个问题的变体,其中代码是与具有不匹配架构的DB交谈.
是否存在"保留所有Web实例"功能(或常见的最佳实践),以便在没有Web流量的情况下完成迁移?
或者我过度担心在实践中可以忽略不计的风险?
处理这种性质的迁移的最安全的方法,Heroku或否,是严格采用与您的模式和代码的兼容性方法:
如果需要对模型进行重大转换,则此方法可能需要执行以下步骤:
通过一些思考和计划,它也可以用于更激烈的变化:
这可能很难组织,并且需要严格的规范和对代码与数据库交互的牢固理解,但实际上,它确实允许进行大多数更改,而不会比服务器重启本身强加的停机时间更长.
| 归档时间: |
|
| 查看次数: |
1211 次 |
| 最近记录: |