繁体   English   中英

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

[英]How to connect Django to external DB without migrations

我想将DjangoApp连接到外部MySQL数据库。 我不想迁移到该表,我的意思是我不想创建新表,仅提取数据。 我的问题是-如何做到这一点? 如果我将此表添加到我的设置文件中的DATABASES中,则控制台将显示有关强制迁移的错误。

你能推荐我什么? 提前致谢,

您可以通过DATABASES设置连接到该数据库。 实际上,迁移错误仅是警告。 您可以通过managedFalse

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

更多资讯

您可以使用此连接到外部数据库

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,

而且无需迁移就可以做到

class Meta:
    managed = False

在您的特定模型中。

从外部数据库中提取数据,您可以在这里看到

在这种情况下,我建议使用两个数据库。 拳头可以使用标准的sqllite db,并将用于存储登录数据和与管理相关的内容。

如果要为旧数据库创建类定义,则可以使用python manage.py inspectdb > mysql_models.txt 这还将在您的模型类元数据中添加managed = False,并使django因缺少迁移而被关闭。

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

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

在开始使用旧数据库之前的一种警告:检查它是否与Django orm兼容。 有些数据库功能(例如复合主键)不适用于django orm。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM