【问题标题】:Following Django tutorial, "python manage.py migrate" doesn't create any django tables (MySQL, Pycharm)按照 Django 教程,“python manage.py migrate”不会创建任何 django 表(MySQL、Pycharm)
【发布时间】:2020-07-02 16:34:33
【问题描述】:

在 mysite.settings.py 我有:

   DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': os.path.join(BASE_DIR, 'test'),
        #'NAME': 'test',
        'USER': 'root',
        'PASSWORD': 'password',
        'HOST': 'localhost',
        'PORT': '3306',
    }}

当我在 PyCharm 终端中运行“python manage.py migrate”时,没有任何反应,没有错误消息等。在指定的数据库中没有创建新表。如您所见,我为 NAME 尝试了两件事。

MySQL 服务器版本 8.0.19 MySQL 连接器/Python 8.0.19 Python 3.8 版 在 PyCharm 中,我安装了包 mysqlclient 1.4.6。

关于如何找到问题的任何建议?如何获取错误信息?

谢谢

【问题讨论】:

    标签: python mysql django pycharm


    【解决方案1】:

    DATABASES 属性指定您的数据库配置。现在NAME 是指定数据库名称的属性。

    目前'NAME': os.path.join(BASE_DIR, 'test'), 在这里不起作用,因为它会给你类似C:/YourUser/YourPath... 的东西,所以这个字符串不是有效的数据库名称。 basically (os.path.join() returns a path to your project directory)

    首先在MySql上手动创建一个db,记下名称并将其放在SETTINGS.py中的'Name': DBNAME的属性中。

    (确保在运行以下命令时设置好环境) 然后尝试python manage.py makemigrations 检查迁移更改,如果到目前为止一切正常,则触发python manage.py migrate 命令。

    【讨论】:

    • 是的,我已经尝试过“首先在 MySql 上手动创建一个数据库,记下名称并将其作为“名称”放在属性中:SETTINGS.py 中的 DBNAME。”。设置环境到底是什么意思? MySQL 服务器服务正在运行,数据库已创建并准备就绪。当我执行“python manage.py makemigrations”时,我想看到什么?因为什么也没有发生。谢谢
    • 环境是指virtual environment。通常,拥有一个用于管理 python 应用程序依赖项的环境是一个好习惯。将虚拟环境视为提供与全局级别 python 发行版隔离的容器。如果您尚未设置任何虚拟环境,请不要担心,因为您的依赖项将由您的全局 python 发行版管理。您仍然可以运行这些命令。在你的 pycharms/cmd/bash 终端上运行它。
    • 已修复。卸载除 64 位版本 38 之外的所有其他版本的 Python,并按照您的建议更改为虚拟环境。谢谢
    猜你喜欢
    • 2020-06-01
    • 1970-01-01
    • 2021-11-01
    • 2019-11-11
    • 2016-05-31
    • 2015-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多