首页 > 代码库 > 从model到数据库的迁移(转载)

从model到数据库的迁移(转载)

先附上原文链接:http://www.cnblogs.com/babykick/archive/2012/02/02/2336019.html

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运行迁移操作。

需要注意的几点:1.init0001那个文件不能删,删了就会从头开始

2.如果是新建项目,最好在django里写模型然后生成,抛弃数据库,实在没办法再用我上一篇博文的办法