OperationalError:没有这样的表
Posted
技术标签:
【中文标题】OperationalError:没有这样的表【英文标题】:OperationalError: no such table 【发布时间】:2017-02-19 04:58:13 【问题描述】:所以我正在开发我的应用程序并为我的模型添加了一个 slugfield。然后照常前往makemigrations
,出现了巨大的红色错误墙。
Traceback (most recent call last):
File "C:\Users\Andreas\ReaderProject\lib\site-packages\django\db\backends\utils.py", line 64, in execute
return self.cursor.execute(sql, params)
File "C:\Users\Andreas\ReaderProject\lib\site-packages\django\db\backends\sqlite3\base.py", line 337, in execute
return Database.Cursor.execute(self, query, params)
sqlite3.OperationalError: no such table: Reader_manga
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "C:\Program Files (x86)\JetBrains\PyCharm 2016.2.3\helpers\pycharm\django_manage.py", line 41, in <module>
run_module(manage_file, None, '__main__', True)
File "C:\Users\Andreas\AppData\Local\Programs\Python\Python35-32\lib\runpy.py", line 182, in run_module
return _run_module_code(code, init_globals, run_name, mod_spec)
File "C:\Users\Andreas\AppData\Local\Programs\Python\Python35-32\lib\runpy.py", line 96, in _run_module_code
mod_name, mod_spec, pkg_name, script_name)
File "C:\Users\Andreas\AppData\Local\Programs\Python\Python35-32\lib\runpy.py", line 85, in _run_code
exec(code, run_globals)
File "D:/WindowsFolders/Documents/Python/ReaderProject\manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "C:\Users\Andreas\ReaderProject\lib\site-packages\django\core\management\__init__.py", line 367, in execute_from_command_line
utility.execute()
File "C:\Users\Andreas\ReaderProject\lib\site-packages\django\core\management\__init__.py", line 359, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "C:\Users\Andreas\ReaderProject\lib\site-packages\django\core\management\base.py", line 294, in run_from_argv
self.execute(*args, **cmd_options)
File "C:\Users\Andreas\ReaderProject\lib\site-packages\django\core\management\base.py", line 342, in execute
self.check()
File "C:\Users\Andreas\ReaderProject\lib\site-packages\django\core\management\base.py", line 374, in check
include_deployment_checks=include_deployment_checks,
File "C:\Users\Andreas\ReaderProject\lib\site-packages\django\core\management\base.py", line 361, in _run_checks
return checks.run_checks(**kwargs)
File "C:\Users\Andreas\ReaderProject\lib\site-packages\django\core\checks\registry.py", line 81, in run_checks
new_errors = check(app_configs=app_configs)
File "C:\Users\Andreas\ReaderProject\lib\site-packages\django\core\checks\urls.py", line 14, in check_url_config
return check_resolver(resolver)
File "C:\Users\Andreas\ReaderProject\lib\site-packages\django\core\checks\urls.py", line 24, in check_resolver
for pattern in resolver.url_patterns:
File "C:\Users\Andreas\ReaderProject\lib\site-packages\django\utils\functional.py", line 35, in __get__
res = instance.__dict__[self.name] = self.func(instance)
File "C:\Users\Andreas\ReaderProject\lib\site-packages\django\urls\resolvers.py", line 313, in url_patterns
patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
File "C:\Users\Andreas\ReaderProject\lib\site-packages\django\utils\functional.py", line 35, in __get__
res = instance.__dict__[self.name] = self.func(instance)
File "C:\Users\Andreas\ReaderProject\lib\site-packages\django\urls\resolvers.py", line 306, in urlconf_module
return import_module(self.urlconf_name)
File "C:\Users\Andreas\AppData\Local\Programs\Python\Python35-32\lib\importlib\__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 986, in _gcd_import
File "<frozen importlib._bootstrap>", line 969, in _find_and_load
File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 673, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 662, in exec_module
File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed
File "D:/WindowsFolders/Documents/Python/ReaderProject\ReaderProject\urls.py", line 25, in <module>
from Reader import views
File "D:/WindowsFolders/Documents/Python/ReaderProject\Reader\views.py", line 7, in <module>
from .forms import UploadForm
File "D:/WindowsFolders/Documents/Python/ReaderProject\Reader\forms.py", line 12, in <module>
class UploadForm(forms.Form):
File "D:/WindowsFolders/Documents/Python/ReaderProject\Reader\forms.py", line 15, in UploadForm
for manga in mangas:
File "C:\Users\Andreas\ReaderProject\lib\site-packages\django\db\models\query.py", line 256, in __iter__
self._fetch_all()
File "C:\Users\Andreas\ReaderProject\lib\site-packages\django\db\models\query.py", line 1087, in _fetch_all
self._result_cache = list(self.iterator())
File "C:\Users\Andreas\ReaderProject\lib\site-packages\django\db\models\query.py", line 54, in __iter__
results = compiler.execute_sql()
File "C:\Users\Andreas\ReaderProject\lib\site-packages\django\db\models\sql\compiler.py", line 835, in execute_sql
cursor.execute(sql, params)
File "C:\Users\Andreas\ReaderProject\lib\site-packages\django\db\backends\utils.py", line 79, in execute
return super(CursorDebugWrapper, self).execute(sql, params)
File "C:\Users\Andreas\ReaderProject\lib\site-packages\django\db\backends\utils.py", line 64, in execute
return self.cursor.execute(sql, params)
File "C:\Users\Andreas\ReaderProject\lib\site-packages\django\db\utils.py", line 94, in __exit__
six.reraise(dj_exc_type, dj_exc_value, traceback)
File "C:\Users\Andreas\ReaderProject\lib\site-packages\django\utils\six.py", line 685, in reraise
raise value.with_traceback(tb)
File "C:\Users\Andreas\ReaderProject\lib\site-packages\django\db\backends\utils.py", line 64, in execute
return self.cursor.execute(sql, params)
File "C:\Users\Andreas\ReaderProject\lib\site-packages\django\db\backends\sqlite3\base.py", line 337, in execute
return Database.Cursor.execute(self, query, params)
django.db.utils.OperationalError: no such table: Reader_manga
我试图删除我添加但没有用的字段。我已经完成了 *** 上建议的几乎所有事情。
我也忘记将项目添加到github,现在也没有原始数据库文件。
似乎给出错误的模型:
class Manga(models.Model):
COMPLETED = 'COMP'
ONGOING = 'ONG'
STATUS_CHOICES = (
(COMPLETED, 'Completed'),
(ONGOING, 'Ongoing'),
)
JAPANESE_MANGA = 'JM'
KOREAN_MANGA = 'KM'
CHINESE_MANGA = 'CM'
UNKNOWN_MANGA = 'UM'
TYPE_CHOICES = (
(JAPANESE_MANGA, 'Japanese Manga'),
(KOREAN_MANGA, 'Korean Manhwa'),
(CHINESE_MANGA, 'Chinese Manhua'),
(UNKNOWN_MANGA, 'Unknown'),
)
authors = models.ManyToManyField(Author)
genres = models.ManyToManyField(Genre)
name = models.CharField(max_length=255, default="")
image = models.ImageField(upload_to=upload_manga_cover)
summary = models.TextField(max_length=1000)
rating = models.IntegerField(default=0)
views = models.IntegerField(default=0)
rank = models.IntegerField(default=0)
alt_names = models.TextField(max_length=400, default="")
type = models.CharField(
max_length=255,
choices=TYPE_CHOICES,
default=UNKNOWN_MANGA
)
status = models.CharField(
max_length=255,
choices=STATUS_CHOICES,
default=ONGOING,
)
released = models.DateField()
date_added = models.DateTimeField(auto_now_add=True)
date_modified = models.DateTimeField(auto_now=True)
slug = models.SlugField(unique=True)
def __str__(self):
return self.name
告诉我你还需要知道什么才能提供帮助,我会补充的。
【问题讨论】:
你应该把你的模型放在有问题的地方,而不是放置指向不同网站的链接。 "我也忘记将项目添加到github,现在也没有原始数据库文件。"所以听起来你正在一个空表上运行迁移。是这样吗? @e4c5 是的,数据库里面什么都没有(用 Pycharm 的数据库系统检查)我应该把所有东西都留下,而不是尝试我在 *** 上找到的解决方案。 【参考方案1】:我的解决方法是运行
python manage.py makemigrations app_name
而不是
python manage.py makemigrations
查看此相关答案:https://***.com/a/25843194/2893090
【讨论】:
【参考方案2】:所以解决此问题的最快方法是将所有内容复制到一个新项目中(可能只是删除选定的部分并重新添加它们)
然后再次制作应用程序,将设置和模型复制过来。跑makemigrations
然后migrate
。然后我可以简单地复制视图、url 和其他所有内容。
出了什么问题?也许迁移发生了一些事情,再次从头开始迁移有助于解决问题。
【讨论】:
我遇到了同样的问题。当我在我的子文件夹中删除我的__pycache__
,然后删除db.sqlite3
时,它得到了修复。它在迁移期间重建自身。好像我以某种方式搞砸了数据库。幸运的是,我只处于开发的早期阶段......肯定需要更好的解决方案。【参考方案3】:
运行“manage.py makemigrations”以进行新的迁移,然后重新运行“manage.py migrate”以应用它们。
这是我尝试运行迁移时给出的提示。我做了上面的事情,它对我有用。
【讨论】:
【参考方案4】:解决方案 1 如果你没有一些关键数据,你可以删除 'db.sqlite' 并且
并运行python manage.py migration
它对我有用。似乎python manage.py migration
看不到您是否通过drop table "your table name"
从数据库中删除表。感谢Petar Luketina以上提示
解决方案 2
在 sqlite3 或您的数据库中有一个表django_migration
,它保存着迁移记录。如果您手动从数据库中删除了该表。然后,您还应该使用
delete from django_migrations where id='"ID of migration that needed to replied"';
否则,将不会应用迁移found in this *** thread
【讨论】:
【参考方案5】:所以简单地进行迁移 根据您的操作系统打开终端/命令行/git bash 并运行以下命令
-
python manage.py makemigrations
python manage.py 迁移
【讨论】:
以上是关于OperationalError:没有这样的表的主要内容,如果未能解决你的问题,请参考以下文章
django:sqlite3.OperationalError:没有这样的表
Django / sqlite3“OperationalError:没有这样的表”关于线程操作
OperationalError:没有这样的表:django_content_type 和 django_session
Graphite Web 错误日志,OperationalError:没有这样的表:auth_user
/admin/login/ 的 OperationalError 没有这样的表:auth_user
/admin/registration/donor/ 处的 OperationalError 没有这样的表:registration_donor