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