我必须将一些数据从一个MySQL数据库迁移到另一个MySQL数据库,两个凭据都在Django应用程序设置文件中,可访问且一切正常。
我的设置文件是这样的:
DATABASES = {
'default': {
'NAME': 'app_data',
'ENGINE': 'django.db.backends.mysql',
'USER': 'mysql_user',
'PASSWORD': 's3krit'
},
'prod_old': {
'NAME': 'old_app_data',
'ENGINE': 'django.db.backends.mysql',
'USER': 'mysql_user',
'PASSWORD': 'priv4te'
}
}
我的想法是:document = Document.objects.using('prod_old').get(id=i)
然后仅使用Document()
在默认数据库中创建另一个对象而不指定DB(Django将使用默认值)。如果我致电Document().save()
,那么来自using('prod_old')
的ID会被复制到“默认数据库”吗?
在这种情况下找不到任何清楚的东西! 谢谢你的帮助!
答案 0 :(得分:0)
试试这个:
python manage.py dumpdata --database=default > old-fixture
python manage.py loaddata --database=pro_old old-fixture
答案 1 :(得分:0)
解决方案是启动类文档justCreatedDocument = Document()
,然后调用save()
将在数据库中为其提供自动递增的ID,然后您必须保存该ID,复制对象justCreatedDocument = oldDocument
并将ID替换为您复制的ID,或者文档将以任意ID保存。
这是我找到的唯一解决方案!