首页 > 解决方案 > Django 数据库迁移错误

问题描述

我有一个连接到 Gmail API 的 Django 项目。当我尝试进行数据库迁移时,它会返回:

C:\Users\Peter\Desktop\FastProject>python manage.py migrate FastProject
Traceback (most recent call last):
  File "manage.py", line 15, in <module>
    execute_from_command_line(sys.argv)
  File "C:\Users\Peter\AppData\Local\Programs\Python\Python36\lib\site-packages\django\core\management\__init__.py", l
ine 371, in execute_from_command_line
    utility.execute()
  File "C:\Users\Peter\AppData\Local\Programs\Python\Python36\lib\site-packages\django\core\management\__init__.py", l
ine 365, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "C:\Users\Peter\AppData\Local\Programs\Python\Python36\lib\site-packages\django\core\management\base.py", line
288, in run_from_argv
    self.execute(*args, **cmd_options)
  File "C:\Users\Peter\AppData\Local\Programs\Python\Python36\lib\site-packages\django\core\management\base.py", line
332, in execute
    self.check()
  File "C:\Users\Peter\AppData\Local\Programs\Python\Python36\lib\site-packages\django\core\management\base.py", line
364, in check
    include_deployment_checks=include_deployment_checks,
  File "C:\Users\Peter\AppData\Local\Programs\Python\Python36\lib\site-packages\django\core\management\commands\migrat
e.py", line 58, in _run_checks
    issues.extend(super()._run_checks(**kwargs))
  File "C:\Users\Peter\AppData\Local\Programs\Python\Python36\lib\site-packages\django\core\management\base.py", line
351, in _run_checks
    return checks.run_checks(**kwargs)
  File "C:\Users\Peter\AppData\Local\Programs\Python\Python36\lib\site-packages\django\core\checks\registry.py", line
73, in run_checks
    new_errors = check(app_configs=app_configs)
  File "C:\Users\Peter\AppData\Local\Programs\Python\Python36\lib\site-packages\django\core\checks\urls.py", line 13,
in check_url_config
    return check_resolver(resolver)
  File "C:\Users\Peter\AppData\Local\Programs\Python\Python36\lib\site-packages\django\core\checks\urls.py", line 23,
in check_resolver
    return check_method()
  File "C:\Users\Peter\AppData\Local\Programs\Python\Python36\lib\site-packages\django\urls\resolvers.py", line 397, i
n check
    for pattern in self.url_patterns:
  File "C:\Users\Peter\AppData\Local\Programs\Python\Python36\lib\site-packages\django\utils\functional.py", line 36,
in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "C:\Users\Peter\AppData\Local\Programs\Python\Python36\lib\site-packages\django\urls\resolvers.py", line 536, i
n url_patterns
    patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
  File "C:\Users\Peter\AppData\Local\Programs\Python\Python36\lib\site-packages\django\utils\functional.py", line 36,
in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "C:\Users\Peter\AppData\Local\Programs\Python\Python36\lib\site-packages\django\urls\resolvers.py", line 529, i
n urlconf_module
    return import_module(self.urlconf_name)
  File "C:\Users\Peter\AppData\Local\Programs\Python\Python36\lib\importlib\__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "C:\Users\Peter\Desktop\FastProject\FastProject\urls.py", line 21, in <module>
    path('', include('mainApp.urls')),
  File "C:\Users\Peter\AppData\Local\Programs\Python\Python36\lib\site-packages\django\urls\conf.py", line 34, in incl
ude
    urlconf_module = import_module(urlconf_module)
  File "C:\Users\Peter\AppData\Local\Programs\Python\Python36\lib\importlib\__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "C:\Users\Peter\Desktop\FastProject\mainApp\urls.py", line 3, in <module>
    from . import views
  File "C:\Users\Peter\Desktop\FastProject\mainApp\views.py", line 2, in <module>
    from quickstart import go
ModuleNotFoundError: No module named 'quickstart'

我也试过'makemigrations'和旧的'syncdb',但第一个给出了同样的错误,第二个不再使用了。我使用SQLite3。这是在我的设置中:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'results_db.sqlite3'),
    }
}

“快速启动”是我从中调用函数的文件。我猜所有的名字都是正确的,所以我不知道有什么问题。这是之前的错误,但我决定稍后再考虑。

谢谢。

标签: pythondjangodatabasesqlitemigration

解决方案


它肯定与这条线有关:

   File "C:\Users\Peter\Desktop\FastProject\mainApp\views.py", line 2, in <module>
    from quickstart import go
ModuleNotFoundError: No module named 'quickstart'

看起来你缺少quickstart模块。它与某些教程有关吗?也许您忘记激活您的虚拟环境?

更新:

如果您有这样的项目结构https://ibb.co/fdvaRJ,您应该使用本地导入或提供包的完整路径:

from .quickstart import go

或者

from mainApp.quickstart import go

或者你可以把你的quickstart.py模块上一层,然后使用

from quickstart import go

就像你现在做的那样。

不要忘记查看 Python 中打包和模块的官方指南:https ://docs.python.org/3/tutorial/modules.html#packages


推荐阅读