【问题标题】:Makemigrations error : django.db.utils.OperationalError: no such tableMakemigrations 错误:django.db.utils.OperationalError:没有这样的表
【发布时间】:2017-10-10 10:36:06
【问题描述】:

当我迁移时

我收到以下错误:

django.db.utils.OperationalError:没有这样的表:django_site

    Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line 364, in execute_from_command_line
    utility.execute()
  File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line 338, in execute
    django.setup()
  File "C:\Python27\lib\site-packages\django\__init__.py", line 27, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "C:\Python27\lib\site-packages\django\apps\registry.py", line 108, in populate
    app_config.import_models()
  File "C:\Python27\lib\site-packages\django\apps\config.py", line 202, in import_models
    self.models_module = import_module(models_module_name)
  File "C:\Python27\lib\importlib\__init__.py", line 37, in import_module
    __import__(name)
  File "C:\Users\KwanfahArunrerk\Desktop\Sinwattana_repo\trunk\sinwattana3_0\campaign\models.py", line 5, in <module>
    from sinUser.models import sinUser, sinUserCategories
  File "C:\Users\KwanfahArunrerk\Desktop\Sinwattana_repo\trunk\sinwattana3_0\sinUser\models.py", line 4, in <module>
    from functionUtility.sendEmails import sendEmailFunctionIsError
  File "C:\Users\KwanfahArunrerk\Desktop\Sinwattana_repo\trunk\sinwattana3_0\functionUtility\sendEmails.py", line 12, in <module>
    HOSTNAME = Site.objects.get_current().domain
  File "C:\Python27\lib\site-packages\django\contrib\sites\models.py", line 63, in get_current
    return self._get_site_by_id(site_id)
  File "C:\Python27\lib\site-packages\django\contrib\sites\models.py", line 35, in _get_site_by_id
    site = self.get(pk=site_id)
  File "C:\Python27\lib\site-packages\django\db\models\manager.py", line 85, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "C:\Python27\lib\site-packages\django\db\models\query.py", line 374, in get
    num = len(clone)
  File "C:\Python27\lib\site-packages\django\db\models\query.py", line 232, in __len__
    self._fetch_all()
  File "C:\Python27\lib\site-packages\django\db\models\query.py", line 1118, in _fetch_all
    self._result_cache = list(self._iterable_class(self))
  File "C:\Python27\lib\site-packages\django\db\models\query.py", line 53, in __iter__
    results = compiler.execute_sql(chunked_fetch=self.chunked_fetch)
  File "C:\Python27\lib\site-packages\django\db\models\sql\compiler.py", line 894, in execute_sql
    raise original_exception
django.db.utils.OperationalError: no such table: django_site

我是python编程新手

有人可以帮助我

谢谢

【问题讨论】:

  • 您正在创建一个新项目吗?可以给个 INSTALLED_APPS 吗?

标签: python django


【解决方案1】:

您的sendEmails 模块在顶层有一个查询:Site.objects.get_current()。这是在导入模块时运行的,在迁移有机会运行之前。

您不得在此级别执行任何数据库操作;把它放到一个方法中。

【讨论】:

  • 啊,经过大量搜索,这个答案指出了根本原因!
【解决方案2】:

在您的 INSTALLED_APPS 中添加 django.contrib.sites 并运行 migrate 命令

python manage.py makemigrations
python manage.py migrate

希望对你有帮助

【讨论】:

  • 您能解释一下为什么这样可以解决问题吗?
【解决方案3】:

在这种情况下,一些迁移​​仍处于挂起状态,因此请运行 python manage.py migratepython manage.py makemigrations app_name

【讨论】:

    【解决方案4】:

    INSTALLED_APPS中的"django.contrib.admin"更改为"django.contrib.admin.apps.SimpleAdminConfig",然后运行makemigrations命令。之后,您可以恢复您的更改。

    【讨论】:

      猜你喜欢
      • 2020-04-26
      • 1970-01-01
      • 2018-12-15
      • 2021-12-29
      • 2016-12-28
      • 2021-08-10
      • 1970-01-01
      • 2020-06-12
      • 2020-04-27
      相关资源
      最近更新 更多