【问题标题】:Problem with migration after changing database in Django在 Django 中更改数据库后的迁移问题
【发布时间】:2022-07-09 15:57:57
【问题描述】:

所以我使用 MySQL 作为数据库后端引擎,在将其更改回 SQLite 后,我无法进行迁移。尝试删除迁移和 db.sqlite3 文件,但它仍然无法正常工作。控制台向我显示该错误

django.db.utils.OperationalError: no such table: books_api_book


DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': config.get("NAME"),
        'HOST': config.get("HOST"),
        'PORT': '3306',
        'USER': config.get("USER"),
        'PASSWORD': config.get("PASSWORD")
    }
}

新的

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / "db.sqlite3",
    }
}

【问题讨论】:

  • 似乎有一些错误配置。将数据库配置添加到您的问题中。
  • 按您的要求添加
  • 检查所有迁移文件夹是否有 init.py 文件。你也可以检查这个答案stackoverflow.com/questions/46664596/…

标签: python django database sqlite migration


【解决方案1】:

命令显示什么?

python manage.py showmigrations

【讨论】:

    【解决方案2】:

    我认为您应该尝试删除文件夹迁移中的文件,__init__.py 除外。

    运行之后:

    py manage.py makemigrations
    

    【讨论】:

      【解决方案3】:

      如果您的项目目录中有一个 sqlite,则将其删除。在您的迁移文件夹中删除除 init.py. 之外的所有内容并运行 **python manage.py makemigrations AppName 然后迁移。

      【讨论】:

        【解决方案4】:

        我实际上找到了答案。问题是在我的模型中,我有静态方法,它是值列表并从某个字段中获取所有值。我注释掉了,正常迁移了。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-08-01
          • 1970-01-01
          • 1970-01-01
          • 2021-05-21
          • 2017-05-26
          • 2021-12-01
          • 1970-01-01
          相关资源
          最近更新 更多