django migrate mysql_django中sqlite迁移mysql

sqlite数据迁移

1 数据备份

django中打开terminal

python manage.py dumpdata authorization > authorization_data.json

2 表结构同步

django中创建mysql数据库并更新配置settings

创建slave数据库

迁移数据库表

python manage.py migrate --run-syncdb --database slave  #syncdb 同步数据库

DATABASES = {

'default': {

'ENGINE': 'django.db.backends.sqlite3',

'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),

},

'slave': { #slave备用数据库

'ENGINE': 'django.db.backends.mysql',

'NAME': 'backend',

'USER': 'root',

'PASSWORD': 'Jarvis.123456',

'HOST': 'localhost',

'PORT': '3306'

}

}

导入数据:python manage.py loaddata authorization_data.json

#init中添加导入

import pymysql

pymysql.install_as_MySQLdb()

#先建数据库,setting中配置

DATABASES = {

'slave': {

'ENGINE': 'django.db.backends.mysql',

'NAME': 'xxx',

'USER': 'root',

'PASSWORD': '123',

'HOST': '127.0.0.1',

'PORT': 3306

}

}

3 数据迁移

setting中配置设置只默认mysql,去掉slave

python manage.py loaddata authorization_data.json

diango-模型变更makemigration,migrate

model--用户层面

makemigration--django层面

migrate--db层面

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Django 项目SQLite 数据迁移至 MongoDB 需要进行以下几个步骤: 1. 安装 pymongo 和 djongo 库: ```python pip install pymongo pip install djongo ``` 2. 修改 Django 项目的 settings.py 文件,将默认的数据库设置为 MongoDB: ```python DATABASES = { 'default': { 'ENGINE': 'djongo', 'NAME': '<database_name>', 'HOST': '<mongodb_host>', 'USER': '<mongodb_username>', 'PASSWORD': '<mongodb_password>', 'AUTH_SOURCE': '<mongodb_authentication_database>', 'AUTH_MECHANISM': 'SCRAM-SHA-1', } } ``` 其,`<database_name>` 是要使用的 MongoDB 数据库的名称,`<mongodb_host>` 是 MongoDB 服务器的地址,`<mongodb_username>` 和 `<mongodb_password>` 是连接 MongoDB 服务器的用户名和密码,`<mongodb_authentication_database>` 是用于认证的数据库名称。 3. 生成 Django models 的 MongoDB 对应的 schema: ```python python manage.py makemigrations --name mongodb_migration --empty <app_name> ``` 其,`<app_name>` 是要进行迁移Django 应用的名称。 4. 在生成的空 migration 文件,添加代码以将 SQLite 数据数据迁移到 MongoDB : ```python from pymongo import MongoClient from django.db import migrations from <app_name>.models import <model_name> def migrate_data(apps, schema_editor): client = MongoClient('<mongodb_host>', username='<mongodb_username>', password='<mongodb_password>', authSource='<mongodb_authentication_database>', authMechanism='SCRAM-SHA-1') db = client.<database_name> collection = db.<model_name>.collection for obj in <model_name>.objects.using('default').all(): collection.insert_one(obj.__dict__) class Migration(migrations.Migration): dependencies = [ ('<app_name>', '<previous_migration>'), ] operations = [ migrations.RunPython(migrate_data), ] ``` 其,`<mongodb_host>`、`<mongodb_username>`、`<mongodb_password>`、`<mongodb_authentication_database>`、`<database_name>` 和 `<model_name>` 都需要根据实际情况进行修改。 5. 执行迁移命令: ```python python manage.py migrate <app_name> ``` 此时,SQLite 数据数据就会被迁移到 MongoDB
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值