如何在我的Django项目中重新引入South?

2 投票
1 回答
543 浏览
提问于 2025-04-16 16:01

我现在正处于一个新手程序员的经典境地,如果让我重新开始我的项目,我会做很多事情都不一样。我在项目初期使用了South这个工具,但因为知识不足遇到了一些问题,最后放弃了它,把它从已安装的应用中移除了,并同步了数据库。之后,我学了一些SQL,能做一些基本的修改,从那以后又做了很多小改动。

我想再试一次South,看看能否重新整理我的代码,使其更符合好的编程习惯。我在South的网站上搜索过,也在stackoverflow上找到了帮助,发现了一个来自创始人的指南,教我如何彻底移除South的所有痕迹并重新开始——包括从已安装的应用中移除它,使用manage.py工具重置数据库中的south表,以及递归删除迁移的子目录。但是,即使我已经很久没有使用South了(它不在我的已安装应用中),这仍然导致我的数据库处于无法正常工作的状态——我也不太明白为什么,因为我没有收到任何错误信息。

有没有人能给一个数据库新手解释一下,South对我的数据库会有什么残留影响呢?

1 个回答

3

South会在你的数据库里创建一个表,用来记录已经应用的迁移。这个表叫做south_migrationhistory。你可能想要删除这个表(然后重新同步你的数据库)或者清空它的内容。

我想此时South可能认为它已经应用了一些迁移,但实际上并没有,这可能会让事情变得有些混乱。

撰写回答