我正在尝试将我的 Django 应用程序从 SQLite3 迁移到 MySql。我采取了以下步骤
- 在 MySql 上配置了一个新的空数据库。我没有创建任何表,因为我假设这些表将由 migrate 命令创建。
- 创建了一个有权访问此数据库的新用户
CREATE USER 'djangouser'@'%' IDENTIFIED WITH mysql_native_password BY 'password';GRANT ALL ON djangoappdb.* TO 'djangouser'@'%';
- 停止了服务器
- 使用转储所有数据到文件
python3 manage.py dumpdata > currData
- 删除了所有现有的迁移
- 重新运行
python3 manage.py makemigrations
。此步骤创建了一个新的迁移文件 - 更改了 setting.py 文件以使用正确的用户名和密码的 MySql 和 djangoappdb。
- 跑了
python3 manage.py migrate
命令。我收到以下错误
...
File "/usr/local/lib/python3.8/dist-packages/MySQLdb/cursors.py", line 319, in _query
db.query(q)
File "/usr/local/lib/python3.8/dist-packages/MySQLdb/connections.py", line 259, in query
_mysql.connection.query(self, query)
django.db.utils.ProgrammingError: (1146, "Table 'djangoappdb.djangoapp_customuser' doesn't exist")
customuser 是应用程序中的模型之一。我应该手动创建表吗?
EDIT2这是 customuser 模型,以防被请求
from django.contrib.auth.models import AbstractUser, Group
# CustomUser:
class CustomUser(AbstractUser):
pass
# add additional fields later
def __str__(self):
return self.username