-
导出数据:
-
在进行任何迁移操作之前,先从现有的 SQLite 数据库中导出数据。
python manage.py dumpdata > data.json
-
-
更新数据库配置:
-
修改
base.py
文件中的数据库配置,将 SQLite 配置更改为 MySQL 配置。根据你提供的代码片段,确保配置如下:DATABASES = {
"default": {
"ENGINE": "django.db.backends.mysql",
"NAME": env("DB_NAME", "django"), # MySQL 数据库名称
"USER": env("DB_USER", "root"), # MySQL 用户名
"PASSWORD": env("DB_PASSWORD", "network"), # MySQL 密码
"HOST": env("DB_HOST", "localhost"), # MySQL 服务器地址
"PORT": env("DB_PORT", "3306"), # MySQL 端口,通常为 3306
# "OPTIONS": {
# "init_command": "SET sql_mode='STRICT_TRANS_TABLES'",
# "charset": "utf8mb4", # 确保支持多语言字符
# },
}
}
-
修改 cli.py
文件中的数据库配置:
os.environ.setdefault("DATABASE_URL", "mysql://root:network@localhost:3306/django")
-
删除旧的迁移文件(可选):
-
如果迁移文件中包含了特定于 SQLite 的内容,可以选择删除旧的迁移文件并重新生成。
find . -path "/migrations/.py" -not -name "init.py" -delete
find . -path "/migrations/.pyc" -delete
-
-
创建新的迁移文件:
-
运行
makemigrations
命令生成新的迁移文件。python manage.py makemigrations
-
-
应用迁移:
-
运行
migrate
命令将迁移应用到 MySQL 数据库。python manage.py migrate
-
-
导入数据到 MySQL 数据库:
-
使用
loaddata
命令将之前导出的数据导入到 MySQL 数据库。python manage.py loaddata data.json
-