首先我运行makemigrations
然后我运行了migrate
并收到了错误ValueError: The database backend does not accept 0 as a value for AutoField.
所以我继续,修改我的models.py
以修复该错误。
现在,当我运行makemigrations
重新开始时,它会起作用。然后migrate
实际上没有做任何事情,只是再次显示错误。所以那里有一个很糟糕的迁移,然后有一个是正确的。
所以我在Stack Overflow上阅读后尝试运行./manage.py migrate --fake mainapp zero
,现在它正在说django.db.utils.OperationalError: (1050, "Table 'mainapp_article' already exists")
。
我有什么想法可以回到我开始的地方,现在重新尝试makemigrations并从models.py中删除错误?
答案 0 :(得分:7)
1)确定您上一次成功迁移:
String s = "0CD"; ////HEREs WHATS DIFFERENT
//loop through rows
for(int x = 0; x< values[0].length;x++)
{
//loops through columns
for(int y = 0; y< values.length;y++)
{
int x = (int)(Math.random()*3); // HEREs WHATS DIFFERENT
String letter = ""+s.charAt(x); //concatenates
values[x][y] = letter; // declares.
}
}
2)然后使用migrate将数据库迁移到指定的迁移点。
./manage.py showmigrations mainapp
[X] 0001_initial
[X] 0002_auto_20160425_0102
[X] 0003_auto_20160426_2022
[X] 0004_auto_20160427_0036
在这个例子中,我假设0003迁移是成功的,而0004则不是。
3)删除迁移文件
./manage.py migrate mainapp 0003_auto_20160426_2022
4)运行makemigrations并再次迁移。
答案 1 :(得分:0)
如果你有错误的迁移,你应该删除它并再次生成它。