django south 升级数据库

作者: admin 分类: django 发布时间: 2013-04-21 00:53 ė 6 没有评论

记录下 这个文档还是准确的。网上看的别的 都不是很准确

假设我们创建了一个名叫southtut的app

生成初始化数据库的south脚本。允许上述命令后将在对于的app目录下生成 migrations目录,south的数据库迁移脚本即保存在该目录。
./manage.py schemamigration southtut –initial

在所用south后,syncdb命令不会为使用south托管的app生成数据库。migrate命令用于执行south的数据库迁移脚本, 实现数据库更改。在这里执行的操作是为southtut创建相关的数据库表。不带app名字时,将对project中的所有app进行migrate操 作。
./manage.py migrate southtut

在很多应用场景中,我们已经用syncdb将数据库给创建好了。这时候运行上面的migrate命令将会提示相关表已经存在,命令执行失败。这 时候我们需要告诉south需要跳过某些migrate操作。上面的命令将告诉south,系统已经执行过了0001号数据库迁移脚本。
./manage.py migrate southtut 0001 –fake

接下来我们对models进行了某些改动,修改后增减了某些字段。
该命令将自动生成数据库的迁移脚本。在migrations目录下可以看到新增加了文件0002_xxx.py,该文件即是此次models改 动的数据库升级脚本。打开文件后可看到其中有一个类Migration,类中有两个方法forwards和backwards。这两个方法分别实现数据库 升级和会滚时对数据库的操作,具体指令的含义参考south的数据库API。
./manage.py schemamigration southtut –auto

应用models的改动到数据库
./manage.py migrate southtut

本文出自 小Q,转载时请注明出处及相应链接。

本文永久链接: http://www.linuxqq.com/archives/949.html

0
更多
Ɣ回顶部