![](/img/trans.png)
[英]How to read data from an External Server and apply migrations on a local Db file in Django?
[英]How to connect Django to external DB without migrations
我想将DjangoApp连接到外部MySQL数据库。 我不想迁移到该表,我的意思是我不想创建新表,仅提取数据。 我的问题是-如何做到这一点? 如果我将此表添加到我的设置文件中的DATABASES中,则控制台将显示有关强制迁移的错误。
你能推荐我什么? 提前致谢,
您可以通过DATABASES
设置连接到该数据库。 实际上,迁移错误仅是警告。 您可以通过managed
为False
。
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.