我对 postgresql 有 0 经验,并且正在使用 sqlalchemy 将一个用 python 编写的应用程序部署到带有 postgres 的服务器上。
对于开发,我使用了 sqlite 服务器。
事情进展得很顺利,但我遇到了一个不知道如何解决的问题。
我有三张看起来像这样的桌子
class Car(db.Model):
id= db.Column(db.Integer, primary_key=True)
...
class Truck(db.Model):
id= db.Column(db.String(32), primary_key=True)
...
class Vehicles(db.Model):
id= db.Column(db.Integer, primary_key=True)
type= db.Column(db.String) #This is either 'car' or 'truck'
value= db.Column(db.String) #That's the car or truck id
...
我有一个查询从Vehicles
哪里选择type = 'car' AND value = 10
这是抛出一个错误:
sqlalchemy.exc.ProgrammingError: (ProgrammingError) operator does not exist: integer = character varying
所以我想这是因为 Car.id
它是一个 int 并且Vehicle.value
是一个字符串..
如何在 sqlalchemy 中编写此查询?有没有办法编写它并使其与我的 sqlite 开发环境和 pgsql 生产兼容?
目前看起来像这样
db.session.query(Vehicle).filter(Car.id == Vehicle.value)
PS:卡车 id 必须是字符串,汽车 id 必须是 int。我对此没有控制权。