У меня есть 0 опыт работы с postgresql и развертывание приложения, написанного на python, с использованием sqlalchemy на сервере с 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 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 dev и продуктом pgsql?
в настоящее время выглядит так:
db.session.query(Vehicle).filter(Car.id == Vehicle.value)
PS: Идентификатор грузовика должен быть строкой, а идентификатор автомобиля должен быть int. Я не контролирую это.