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

时间:2025-04-11 15:29:44

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

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

python  dumpdata -o 

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

# 

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

三、给新项目迁移数据表

python  migrate

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

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

python  shell
>>> from  import ContentType
>>> ().delete()

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

python  loaddata