Django Mysql迁移到PostgreSQL
1、安装PostgreSQL
2、在settings里配置一个PostgreSQL的配置节:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'wodedata',
'USER': 'root',
'PASSWORD': 'wodemima',
'HOST': '127.0.0.1',
'PORT': '3306',
},
'postgresql': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'wodedata',
'USER': 'psql',
'PASSWORD': 'wodemima',
'HOST': '127.0.0.1',
'PORT': '5432',
}
}
3. 生成数据结构
python manage.py migrate --database=postgresql
4. 进入PostgreSQL, 清除初始化数据。
delete from auth_permission;
delete from django_content_type;
delete from django_site;
delete from django_migrations;
5. 导出数据.
python manage.py dumpdata --all > wodedata2postgresql.json
6.导入数据.
python manage.py loaddata wodedata2postgresql.json --database=postgresql
7.在settings里把数据库默认引擎改为postgresql(最好把原来的mysql配置删掉,否则你更新model的时候会去检查)
DATABASES = {
'mysql': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'wodedata',
'USER': 'root',
'PASSWORD': 'wodemima',
'HOST': '127.0.0.1',
'PORT': '3306',
},
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'wodedata',
'USER': 'psql',
'PASSWORD': 'wodemima',
'HOST': '127.0.0.1',
'PORT': '5432',
}
}