问题描述
class VehicleModel(db.Model):
__tablenam__ = 'vehicle'
id = db.Column(db.Integer,primary_key=True)
class DriverModel(db.Model):
__tablename__ = 'driver'
id = db.Column(db.Integer,primary_key=True)
v_id = db.Column(db.Integer,db.ForeignKey('vehicle.id'))
v_rel = db.relationship('VehicleModel',backref=db.backref('vehicle',uselist=False))
def update(self,id,v_id):
self.id = id
self.v_id = v_id
db.session.commit()
在上面的代码中,我无法更新v_id的值。 sqlalchemy也不抛出任何sql错误。我不知道,更新方法工作正常,但无法更新v_id值。 v_id的值与第一次添加该列时设置的值相同。
解决方法
这是因为Alembic无法对您的dB.Model
进行特别详细的检查,您必须自己更改迁移脚本。如果您使用的是Flask-migrate,它将位于“迁移/版本”文件夹中。使用文件其他地方的Alembic语法更改此设置,以更改外键。
在关系中进行某些更改后,它会自动运行,所以没关系! 谢谢大家的回应!