django PlanetScale上的FOREIGN KEY

xt0899hw  于 2023-05-23  发布在  Go
关注(0)|答案(1)|浏览(139)

我想在Vercel上部署一个Django应用程序,它使用PlanetScale作为数据库。但是由于PlanetScale不支持外键,并且Django在这个约束下工作得很好。所以我的问题是有什么办法可以解决这个问题吗?
我尝试将db_contraint设置为False,就像models.ForeignKey(Buses, on_delete=models.CASCADE, db_constraint=False)一样,这是我的模型,但这也不起作用。

cmssoen2

cmssoen21#

我找到了一个名为django_psdb_engine的GitHub存储库,它为Django提供了一个自定义数据库引擎。这个引擎子类化了现有的django.db.backends.mysql引擎,并禁用了外键约束,允许您运行Django迁移而没有任何问题。我附上了链接供您参考。
正如文件所说
1.在项目的根目录中:

git clone https://github.com/planetscale/django_psdb_engine.git

1.在settings.py文件中,找到DATABASES对象并修改ENGINE字段,如下所示:

DATABASES = {
    'default': {
        'ENGINE': 'django_psdb_engine',
    }
}

1.使用以下命令运行迁移:

python manage.py migrate

相关问题