我想在Vercel上部署一个Django应用程序,它使用PlanetScale作为数据库。但是由于PlanetScale不支持外键,并且Django在这个约束下工作得很好。所以我的问题是有什么办法可以解决这个问题吗?我尝试将db_contraint设置为False,就像models.ForeignKey(Buses, on_delete=models.CASCADE, db_constraint=False)一样,这是我的模型,但这也不起作用。
db_contraint
False
models.ForeignKey(Buses, on_delete=models.CASCADE, db_constraint=False)
cmssoen21#
我找到了一个名为django_psdb_engine的GitHub存储库,它为Django提供了一个自定义数据库引擎。这个引擎子类化了现有的django.db.backends.mysql引擎,并禁用了外键约束,允许您运行Django迁移而没有任何问题。我附上了链接供您参考。正如文件所说1.在项目的根目录中:
django.db.backends.mysql
git clone https://github.com/planetscale/django_psdb_engine.git
1.在settings.py文件中,找到DATABASES对象并修改ENGINE字段,如下所示:
settings.py
DATABASES
ENGINE
DATABASES = { 'default': { 'ENGINE': 'django_psdb_engine', } }
1.使用以下命令运行迁移:
python manage.py migrate
1条答案
按热度按时间cmssoen21#
我找到了一个名为django_psdb_engine的GitHub存储库,它为Django提供了一个自定义数据库引擎。这个引擎子类化了现有的
django.db.backends.mysql
引擎,并禁用了外键约束,允许您运行Django迁移而没有任何问题。我附上了链接供您参考。正如文件所说
1.在项目的根目录中:
1.在
settings.py
文件中,找到DATABASES
对象并修改ENGINE
字段,如下所示:1.使用以下命令运行迁移: