我正在尝试重置我的数据库,而Django项目正在运行,但我遇到了麻烦。由于数据库和模型之间的映射,Django一直在与数据库进行交互。
我正在使用模块reset_db,如下所示:
from django.core import management
management.call_command('reset_db',router='default',interactive = False)
我正在使用postgres,当这个命令运行时,我有这个错误:
OperationalError: database "XXX" is being accessed by other users
DETAIL: There are 1 other session(s) using the database.
我试图从psycopg2删除数据库,但我仍然有这个问题。 我也试过蛮力,发动了一个杀死所有联系的外部脚本:
os.system("bash myscript.sh")
我的剧本:
psql -U myuser -d mybase -c "select pg_terminate_backend(pg_stat_activity.procpid) from pg_stat_activity where pg_stat_activity.datname='mybase';"
./manage.py reset_db --router=default --noinput
这个有效。但是,当我杀死所有与数据库的连接时,我的应用程序没有回答(这是合乎逻辑的)。
我必须从应用程序重置我的所有基础。例如,在我的管理pannel(不是来自Django的那个)中,我有一个“重置数据”按钮,当点击它时,它必须删除所有数据,执行syncdb和迁移。
有谁知道我该怎么办?
由于