Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么GeoDjango和/或PostGIS会保留修复错误后抛出的错误?_Django_Postgresql_Postgis_Geodjango - Fatal编程技术网

为什么GeoDjango和/或PostGIS会保留修复错误后抛出的错误?

为什么GeoDjango和/或PostGIS会保留修复错误后抛出的错误?,django,postgresql,postgis,geodjango,Django,Postgresql,Postgis,Geodjango,我在玩GeoDjango和PostGIS,出于某种原因,如果我用一些混乱的代码运行迁移,它会抛出一个错误,例如 ValueError: invalid literal for int() with base 10: 'foo' 当然它会抛出一个错误我的代码是错误的!但随后我将代码返回到我所知道的状态,并一度处于正常工作状态,然后运行: python manage.py makemigrations bar 很好。然后我就跑 python manage.py migrate 当我知道我删

我在玩GeoDjango和PostGIS,出于某种原因,如果我用一些混乱的代码运行迁移,它会抛出一个错误,例如

ValueError: invalid literal for int() with base 10: 'foo'
当然它会抛出一个错误我的代码是错误的!但随后我将代码返回到我所知道的状态,并一度处于正常工作状态,然后运行:

 python manage.py makemigrations bar
很好。然后我就跑

 python manage.py migrate
当我知道我删除了这个问题时,我得到了和以前一样的错误。
我的代码没有什么复杂的地方,我刚开始这个项目,我在GeoDjango教程中所需要的地方添加了一些东西,然后我添加了自己的模型。他们的任何Django、PostGIS或Postgres设置是否可能导致数据库在迁移后保留其错误?因为到目前为止,唯一对我有效的方法就是删除数据库并创建一个新的数据库。这在常规的Postgres/Django项目中从未发生过,因此我觉得这可能与PostGIS或GeoDjango有关

如何“将代码返回到……运行状态”?如果只对代码执行此操作,则所有迁移都会保留,并且在运行
makemigrations
时会创建新的迁移。然后,每次运行
migrate
时,它都会在相同的旧迁移中失败。因此,当您将代码“返回”到以前的状态时,请对迁移执行相同的操作,或者删除它们并从头开始重新创建。@Ivan删除迁移,然后重新运行
makemigrations
解决了问题。我想,因为
makemigrations
只是为
migrate
设置暂存区的一种方法,所以这样做永远不会导致任何问题?您如何“将代码返回到……运行状态”?如果只对代码执行此操作,则所有迁移都会保留,并且在运行
makemigrations
时会创建新的迁移。然后,每次运行
migrate
时,它都会在相同的旧迁移中失败。因此,当您将代码“返回”到以前的状态时,请对迁移执行相同的操作,或者删除它们并从头开始重新创建。@Ivan删除迁移,然后重新运行
makemigrations
解决了问题。我想,因为
makemigrations
只是为
migrate
设置暂存区的一种方法,所以这样做永远不会导致任何问题?