我想将我的DjangoApp连接到外部MySQL数据库。 我不想迁移到这个表,我的意思是我不想创建新表,只是拉数据。 我的问题是 - 如何做到这一点? 如果我在设置文件中将此表添加到DATABASES,则控制台会显示有关强制迁移的错误。
你能推荐我什么? 提前谢谢,
答案 0 :(得分:1)
您可以通过DATABASES
设置连接到该数据库。实际上,迁移错误仅是警告。您可以managed
到False
。
class MyModel(models.Model):
field1 = models.CharField()
...
class Meta:
managed = False
更多info
答案 1 :(得分:1)
您可以使用此
连接到外部数据库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
从外部数据库中提取 数据,您可以看到here
答案 2 :(得分:0)
在这种情况下,我建议使用两个数据库。拳头可以使用标准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一起使用。