Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flask 如何在Alchemy中更新外键值?_Flask_Flask Sqlalchemy_Flask Restful - Fatal编程技术网

Flask 如何在Alchemy中更新外键值?

Flask 如何在Alchemy中更新外键值?,flask,flask-sqlalchemy,flask-restful,Flask,Flask Sqlalchemy,Flask Restful,在上面的代码中,我无法更新v_id的值。Sqlalchemy也不会抛出任何sql错误。我不知道,更新方法工作正常,但无法更新v_id值。v_id的值与第一次添加列时设置的值保持不变。这是因为Alembic无法对您的dB进行特别详细的检查。Models您必须自己更改迁移脚本吗。如果您正在使用Flask migrate,它将位于migrations/versions文件夹中。使用文件中其他地方的alembic语法更改此项,以更改外键。在关系中进行某些更改后,它会自动工作,所以不要介意! 谢谢大家的回

在上面的代码中,我无法更新v_id的值。Sqlalchemy也不会抛出任何sql错误。我不知道,更新方法工作正常,但无法更新v_id值。v_id的值与第一次添加列时设置的值保持不变。

这是因为Alembic无法对您的
dB进行特别详细的检查。Model
s您必须自己更改迁移脚本吗。如果您正在使用Flask migrate,它将位于migrations/versions文件夹中。使用文件中其他地方的alembic语法更改此项,以更改外键。

在关系中进行某些更改后,它会自动工作,所以不要介意!
谢谢大家的回复

我真的不明白你的目标是什么。还有,你为什么要换身份证?我想不出任何理由来更改id-这是内部数据库的事情,更改它可能会把一些事情搞砸。看,我只是想从驱动程序表中更新v_id的值,这是一个外键列,但不幸的是,我无法忽略
self.id=id
。没有理由更改
id
。然后请回复:)我不想迁移任何东西,我只想简单地更新外键值!您使用什么将更改应用于数据库架构?嗨,Ram,我也有同样的问题,您能告诉我您为使其正常工作所做的更改吗?
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()