django如何把旧数据库数据迁移到新数据库

本文详细介绍了如何使用Django的dumpdata和loaddata命令将数据从SQLite数据库迁移到PostgreSQL。首先停止服务并导出数据,然后配置新的数据库连接,运行migrate命令创建数据表,删除 ContentType 避免导入冲突,最后导入备份数据完成迁移。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这里是使用django的dumpdata和loaddata命令迁移数据到新数据库。

一、首先停止django服务,从旧数据库导出所有数据;

python manage.py dumpdata -o backup.json

二、创建新的数据库,并修改django配置,比如下面从sqlite切换到postgresql;

# settings.py

DATABASES = {
    #'default': {
    #    'ENGINE': 'django.db.backends.sqlite3',
    #    'NAME': os.path.join(BASE_DIR, 'old_database.sqlite3'),
    #}
    'default': {
         'ENGINE': 'django.db.backends.postgresql_psycopg2',
         'NAME': 'new_database',
         'USER': 'postgres',
         'PASSWORD': 'password',
         'HOST': '127.0.0.1',
         'PORT': 5432,
    }
}

三、给新项目迁移数据表

python manage.py migrate

不需要使用 python manage.py migrate --run-syncdb
–run-syncdb 只是多了一个 Creating tables 的步骤。

四、由于导入时候ContentType可能会导致冲突,所以需要先删除ContentType

python manage.py shell
>>> from django.contrib.contenttypes.models import ContentType
>>> ContentType.objects.all().delete()

五、最后导入旧数据库的数据即可完成。

python manage.py loaddata backup.json
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值