私はpostgresqlの経験がなく、sqlalchemyを使用してPythonで記述されたアプリをpostgresを使用するサーバーにデプロイしています。
開発には、sqliteサーバーを使用しました。
物事はかなり順調に進んでいますが、解決方法がわからないという問題にぶつかりました。
私はそのように見える3つのテーブルを持っています
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
あり、stringであるためだと思い ます。
sqlalchemyでこのクエリを書く方法は?それを書いて、私のsqlite開発環境とpgsqlプロダクションと互換性を持たせる方法はありますか?
現在はそのように見えます
db.session.query(Vehicle).filter(Car.id == Vehicle.value)
PS:トラックIDは文字列で、車IDは整数である必要があります。私にはそれを制御することはできません。