从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里写模型然后生成,抛弃数据库,实在没办法再用我上一篇博文的办法