You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django执行migrate遇TypeError:connect参数需str而非WindowsPath

解决Django migrate时的TypeError: connect() argument 4 must be str, not WindowsPath错误

错误原因

你混淆了SQLite与MySQL的数据库配置逻辑:

  • SQLite的NAME是数据库文件路径(可用BASE_DIR / 文件名生成Path对象)
  • MySQL的NAME需要的是你在MySQL中创建的schema名称(字符串),但你用BASE_DIR / 'db.crudpy'生成了WindowsPath对象,导致类型不匹配触发报错。
    另外配置里还有个潜在问题:Django数据库配置的用户字段是USER,不是USERNAME,这个会导致后续无法正确连接数据库。

修正步骤

  1. 修改settings.py中的数据库配置:
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'crudpy',  # 直接填写你创建的schema名称(字符串)
            'USER': 'root',    # 将USERNAME改为USER
            'PASSWORD': '1234',
            'PORT': 3306,      # 端口可使用整数或保留字符串
            'HOST': 'localhost'
        }
    }
    
  2. 保存配置后,重新执行迁移命令:
    python manage.py migrate
    

内容的提问来源于stack exchange,提问作者Wyndham Keith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 03:05:22