制作网站 公司,网站运营工作是干什么的,做网站视频背景,免费移动网站模板下载安装简记 使用 Django Shell 清空所有数据库表 jcLee95的博客#xff1a;https://blog.csdn.net/qq_28550263
本文地址#xff1a;https://blog.csdn.net/qq_28550263/article/details/132862795 目 录 1. 描述2. 步骤备份重要数据进入 Django Shell输入脚本 1. 描述
由于历史的… 简记 使用 Django Shell 清空所有数据库表 jcLee95的博客https://blog.csdn.net/qq_28550263
本文地址https://blog.csdn.net/qq_28550263/article/details/132862795 目 录 1. 描述2. 步骤备份重要数据进入 Django Shell输入脚本 1. 描述
由于历史的迁移历史的混乱状态导致尝试运行 python manage.py migrate 时Django 试图创建数据库表时发生了问题。错误信息中提到了缺少 django_content_type 表这是Django用于跟踪模型的ContentType的表。
错误大致信息如下
Operations to perform:Apply all migrations: admin, auth, contenttypes, sessions, users
Running migrations:No migrations to apply.
Traceback (most recent call last):File C:\Python311\Lib\site-packages\django\db\backends\utils.py, line 89, in _executereturn self.cursor.execute(sql, params)^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File C:\Python311\Lib\site-packages\django\db\backends\sqlite3\base.py, line 357, in executereturn Database.Cursor.execute(self, query, params)^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
sqlite3.OperationalError: no such table: django_content_typeThe above exception was the direct cause of the following exception:Traceback (most recent call last):File D:\desktop\jcmusic\manage.py, line 22, in modulemain()File D:\desktop\jcmusic\manage.py, line 18, in mainexecute_from_command_line(sys.argv)File C:\Python311\Lib\site-packages\django\core\management\__init__.py, line 446, in execute_from_command_lineutility.execute()File C:\Python311\Lib\site-packages\django\core\management\__init__.py, line 440, in executeself.fetch_command(subcommand).run_from_argv(self.argv)File C:\Python311\Lib\site-packages\django\core\management\base.py, line 402, in run_from_argvself.execute(*args, **cmd_options)File C:\Python311\Lib\site-packages\django\core\management\base.py, line 448, in executeoutput self.handle(*args, **options)^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File C:\Python311\Lib\site-packages\django\core\management\base.py, line 96, in wrappedres handle_func(*args, **kwargs)^^^^^^^^^^^^^^^^^^^^^^^^^^^^File C:\Python311\Lib\site-packages\django\core\management\commands\migrate.py, line 376, in handleemit_post_migrate_signal(File C:\Python311\Lib\site-packages\django\core\management\sql.py, line 52, in emit_post_migrate_signalmodels.signals.post_migrate.send(File C:\Python311\Lib\site-packages\django\dispatch\dispatcher.py, line 176, in sendreturn [^File C:\Python311\Lib\site-packages\django\dispatch\dispatcher.py, line 177, in listcomp(receiver, receiver(signalself, sendersender, **named))^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File C:\Python311\Lib\site-packages\django\contrib\auth\management\__init__.py, line 51, in create_permissionscreate_contenttypes(File C:\Python311\Lib\site-packages\django\contrib\contenttypes\management\__init__.py, line 127, in create_contenttypescontent_types, app_models get_contenttypes_and_models(^^^^^^^^^^^^^^^^^^^^^^^^^^^^File C:\Python311\Lib\site-packages\django\contrib\contenttypes\management\__init__.py, line 98, in get_contenttypes_and_modelscontent_types {^File C:\Python311\Lib\site-packages\django\db\models\query.py, line 394, in __iter__self._fetch_all()File C:\Python311\Lib\site-packages\django\db\models\query.py, line 1867, in _fetch_allself._result_cache list(self._iterable_class(self))^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File C:\Python311\Lib\site-packages\django\db\models\query.py, line 87, in __iter__results compiler.execute_sql(^^^^^^^^^^^^^^^^^^^^^File C:\Python311\Lib\site-packages\django\db\models\sql\compiler.py, line 1398, in execute_sqlcursor.execute(sql, params)File C:\Python311\Lib\site-packages\django\db\backends\utils.py, line 102, in executereturn super().execute(sql, params)^^^^^^^^^^^^^^^^^^^^^^^^^^^^File C:\Python311\Lib\site-packages\django\db\backends\utils.py, line 67, in executereturn self._execute_with_wrappers(^^^^^^^^^^^^^^^^^^^^^^^^^^^^File C:\Python311\Lib\site-packages\django\db\backends\utils.py, line 80, in _execute_with_wrappersreturn executor(sql, params, many, context)^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File C:\Python311\Lib\site-packages\django\db\backends\utils.py, line 84, in _executewith self.db.wrap_database_errors:File C:\Python311\Lib\site-packages\django\db\utils.py, line 91, in __exit__raise dj_exc_value.with_traceback(traceback) from exc_valueFile C:\Python311\Lib\site-packages\django\db\backends\utils.py, line 89, in _executereturn self.cursor.execute(sql, params)^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File C:\Python311\Lib\site-packages\django\db\backends\sqlite3\base.py, line 357, in executereturn Database.Cursor.execute(self, query, params)^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
django.db.utils.OperationalError: no such table: django_content_type我决定使用 Django Shell 清空数据库表。记录一下过程。 2. 步骤
备份重要数据
清理前确保你使用各种手段备份过了所有重要数据然后才清空数据库中的所有表。
进入 Django Shell
python manage.py shell输入脚本
拷贝以下写好的删表脚本到交互式Shell中键入回车开始执行。
from django.db import connection
cursor connection.cursor()
cursor.execute(SELECT name FROM sqlite_master WHERE typetable;)
tables cursor.fetchall()
for table in tables:cursor.execute(fDELETE FROM {table[0]};)然后输入exit函数退出该Django Shell环境。
exit()可以了现在可以重新创建迁移和数据库表了
python manage.py makemigrations
python manage.py migrate