在 Django 中更改数据库后的迁移问题
Problem with migration after changing database in Django
所以我使用 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",
}
}
命令显示什么?
python manage.py showmigrations
我认为您应该尝试删除文件夹迁移中的文件,__init__.py
除外。
之后运行 :
py manage.py makemigrations
如果您的项目目录中有 sqlite,则将其删除。在你的迁移文件夹中删除除 init.py. 和 运行 python [=22 之外的所有内容=] makemigrations AppName 然后迁移.
希望对你有所帮助
我真的找到了答案。问题是在我的模型中我有静态方法 values-list 并从某个字段获取所有值。我注释掉了,正常迁移。
所以我使用 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",
}
}
命令显示什么?
python manage.py showmigrations
我认为您应该尝试删除文件夹迁移中的文件,__init__.py
除外。
之后运行 :
py manage.py makemigrations
如果您的项目目录中有 sqlite,则将其删除。在你的迁移文件夹中删除除 init.py. 和 运行 python [=22 之外的所有内容=] makemigrations AppName 然后迁移.
希望对你有所帮助
我真的找到了答案。问题是在我的模型中我有静态方法 values-list 并从某个字段获取所有值。我注释掉了,正常迁移。