设为首页 加入收藏

TOP

django:数据库修改工具South的正确使用方式 (二)
2014-11-23 23:37:42 来源: 作者: 【 】 浏览:25
Tags:django 数据库 修改 工具 South 正确 使用 方式
eric.py", line 213, in create_table
', '.join([col for col in columns if col]),
File "/Library/Python/2.6/site-packages/south/db/generic.py", line 137, in execute
cursor.execute(sql, params)
File "/Library/Python/2.6/site-packages/django/db/backends/util.py", line 15, in execute
return self.cursor.execute(sql, params)
File "/Library/Python/2.6/site-packages/django/db/backends/sqlite3/base.py", line 200, in execute
return Database.Cursor.execute(self, query, params)
django.db.utils.DatabaseError: table "profiles_profile" already exists SPAN >
	

3 来自stackoverflow用户Ken Cochrane的解决方案以及其他

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

ken的答案不可谓不详尽,如果你仍然有问题,那么可以点击下面的链接去stackoverflow看看他的原文,以及别人的答案:点我前往

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇搭建Hive的图形界面 下一篇排序合并连接(sort merge join)的..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: