Django 使用south插件

 

转自:http://www.cnblogs.com/babykick/archive/2012/02/02/2336019.html

有人在stackoverflow上问到以上问题,ken给了一个非常nice的详尽答案。他提出在不同情形下使用south的正确方式,如下:

  1)创建一个没有数据库的新项目时

    1、创建数据库

    2、将south添加到INSTALLED_APPS

    3、运行syncdb命令,它将django和south的数据表加入到数据库中

    4、将你创建的apps添加到INSTALLED_APPS

    5、对每个app分别运行“python manage.py schemamigration app_name --initial”,它将在每个app的目录下创建migration目录和相应的文件

    6、然后运行“python manage.py migrate app_name”,这一步将app的数据表加入到数据库中

  2)在带有数据库的已存项目中使用south

    1、将south加入到INSTALLED_APPS中

    2、运行syncdb,它将south的数据表加入到数据库中

    3、对每个app分别运行python manage.py schemamigration app_name --initial,它将在每个app的目录下创建migration目录和相应的文件

    4、对每个app分别运行“python manage.py migrate app_name 0001 --fake”,该命令不会对数据库做任何操作,只是欺骗一下south,让它在south_migrationhistory表中添加一些记录以便于下次你想创造migration文件的时候所有东西都已搞定。

  3、在没有数据库的已存项目中使用south

    1)创建数据库

    2)将south加入到INSTALLED_APPS中

    3)对每个app分别运行“python manage.py schemamigration app_name --initial”,它将在每个app的目录下创建migration目录和相应的文件

    4)运行syncdb,它将所有没有migrations的apps加入到数据库中

    5)然后运行“python manage.py migrate”命令,它将对你的所有apps运行迁移操作


如果改变了model里的内容,做如下操作

python manage.py schemamigration youappname --auto #检测对models的更改
python manage.py migrate youappnam #将更改反应到数据库(如果出现表已存在的错误,后面加 --fake)

使用教程,具体的情况参见:http://www.cnblogs.com/BeginMan/p/3324774.html

你可能感兴趣的:(Django 使用south插件)