使用south增强Django的模型同步
只要需求没有冻结,数据库基本上也不可能冻结。Django虽然提供模型向数据库的同步机制,但因为其只是一次性同步,当模型有所变化时其内置的同步功能就无能为力了。还好有很多开源的工具可以弥补Django在这方面的不足。south(http://south.aeracode.org/)就是其中之一。
其简要的使用方法如下:
- 按照标准的Python包的方式安装好之后,在Django配置文件(settings.py)中将south添加到INSTALLED_APPS中,并执行manager.py syncdb完成south所需数据表的安装。
- 使用manage.py schemamigration <appname> --initial初始化设置。此时south会在相应的app目录建立一个migrations子目录,里边包含0001_initial.py,亦即初始的数据结构。
- 当对模型进行修改后,运行manage.py schemamigration <appname> --auto。south会将变化在migrations目录写入一个新的以递增数字开头的py文件中。亦即south靠这些文件跟踪模型的历次变化;
- 运行manage.py migrate <appname>将模型变化同步到数据库结构。此时south会在数据库表south_migrationhistory添加一条记录。也就是说south会在这个表中的记录和上一步骤中生成的py文件来保持模型结构的同步。

浙公网安备 33010602011771号