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

这里是使用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

你可能感兴趣的:(Python,Django,Web,python,django,数据库,迁移)