如何在不迁移的情况下将Django连接到外部数据库

2024-09-29 23:15:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我想把我的djangapp连接到外部MySQL数据库。 我不想迁移到这个表,我的意思是我不想创建新表,只需要拉取数据。 我的问题是-怎么做? 如果将此表添加到设置文件中的数据库,则控制台将显示有关强制迁移的错误。在

你能给我推荐什么? 提前谢谢你


Tags: 文件数据数据库错误mysqldjangapp
3条回答

你可以用这个连接到外部数据库

settings.configure(
DATABASE_ENGINE = 'mysql',
DATABASE_NAME = 'db_name',
DATABASE_USER = 'db_user',
DATABASE_PASSWORD = 'db_pass',
DATABASE_HOST = 'http://YourDataBaseAdress.com/mydatabase',
DATABASE_PORT = '6676',
TIME_ZONE = 'America/Sao_Paulo',) //if you want to connect this forever add this
'CONN_MAX_AGE': None,

不用迁移你也能做到

^{pr2}$

在你的特定模型中

对于从外部数据库提取数据,您可以看到here

在这种情况下,我建议使用两个数据库。第一个可以使用标准的sqllitedb,并将用于存储登录数据和管理相关的东西。在

如果要为遗留数据库创建类定义,可以使用python manage.py inspectdb > mysql_models.txt。这还会将managed=False添加到模型类meta中,并使django对丢失的迁移闭嘴。在

强制迁移警告是:警告。您不必应用迁移。在

文件: https://docs.djangoproject.com/en/1.11/topics/db/multi-db/

在开始使用遗留数据库之前,有一个警告:检查它是否与django orm兼容。有些数据库特性(如复合主键)不能与django orm一起使用。在

您可以通过DATABASES设置连接到该数据库。实际上,迁移错误只是一个警告。您可以通过managedFalse来完成。在

class MyModel(models.Model):
    field1 = models.CharField()
    ...
    class Meta:
        managed = False

更多info

相关问题 更多 >

    热门问题