gpt4 book ai didi

python - Django 读写多个数据库

转载 作者:行者123 更新时间:2023-11-29 12:35:01 24 4
gpt4 key购买 nike

大家好,我正在用 django 开发一个网络应用程序,我正在使用 postgresql 数据库。我还必须能够从另一个使用 sqlserver 数据库的应用程序中获取一些数据。我试图获取的表格包含大量数据,因此使用直接链接可能并不明智。关于这个问题最好的方法是什么?我可以使用 sql-odbc 连接来获取数据吗?我如何填充表?假设我创建了一个本地表并将数据从 sql 迁移到 postgresql 计划。想了解您是如何处理这个问题的以及您的经历。谢谢你!

最佳答案

在您的 settings.py 中编辑此代码(针对多个数据库)

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'django',
'USER': 'postgres',
'PASSWORD': '12345678',
'HOST': 'localhost',
'PORT': '5432',
},
'connection_other_db': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'mi_db',
'USER': 'root',
'PASSWORD': 'root',
'HOST': 'localhost',
'PORT': '3306',
}
}

应用迁移命令:

对于默认数据库

$ ./manage.py migrate

对于其他数据库(connection_other_db)

$ ./manage.py migrate --database=connection_other_db

在您看来,要使用 ORM,请使用:

Mi_Model.objects.using('connection_other_db').all() # For mysql database
Mi_Model.objects.all() # For default database (postgresql)

对于创建对象:

s = Mi_Model()
s._state.adding = False
s._state.db = 'connection_other_db'
s.field_1 = 'A value'
s.save()

s = Mi_Model.objects.using('connection_other_db').create(
field_1='A value'
# ....
)

对于使用交易:

with transaction.atomic(using='connection_other_db'):
# Your code here

使用游标

with connections['connection_other_db'].cursor() as cursor:
cursor.execute('your query')

Django 文档: https://docs.djangoproject.com/es/2.1/topics/db/multi-db/

关于python - Django 读写多个数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52813593/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com