gpt4 book ai didi

sql - Django 中的数据库问题 : can't reset because of dependencies

转载 作者:行者123 更新时间:2023-12-02 15:18:30 24 4
gpt4 key购买 nike

我正在尝试使用以下方法重置 Django 中的数据库:

python manage.py reset app

但出现以下错误:

Error: Error: app couldn't be reset. Possible reasons:
* The database isn't running or isn't configured correctly.
* At least one of the database tables doesn't exist.
* The SQL was invalid.
Hint: Look at the output of 'django-admin.py sqlreset app'. That's the SQL this command wasn't able to run.
The full error: cannot drop table app_record because other objects depend on it
HINT: Use DROP ... CASCADE to drop the dependent objects too.

这就是我的 models.py 文件的样子:

class Record(models.Model):
name = models.CharField(max_length=50, db_index=True)
year = models.IntegerField(blank=True, null=True)
def __unicode__(self):
return self.name

class Class(models.Model):
record = models.ForeignKey(Record)
def __unicode__(self):
return self.id

我知道我需要在 SQL 中使用 DROP...CASCADE 命令来删除并重新创建数据库(django-admin.py 的输出)。

但是我如何直接从 models.py 编辑该 SQL?

<小时/>

更新

好的,我想出了如何手动删除表(数据库是postgres),已经在这里为有同样问题的人指出了:

python manage.py dbshell 
# drop table app_record cascade;
# \q
python manage.py reset app

仍然想知道是否有人有更好的方法:)

最佳答案

完全重置 Django 数据库的简单方法是使用 django-extensions .

它有一个 reset_db 命令,支持所有 Django 的默认数据库后端。

python manage.py reset_db

如果您使用的是 Django 1.2+,您应该显式定义要重置的数据库。如果您的项目仅使用一个数据库,您可能应该设置 --router=default

关于sql - Django 中的数据库问题 : can't reset because of dependencies,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1702906/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com