我有一個數據庫中的預先存在的表,我想使用automap pattern。Sqlalchemy;將主鍵設置爲預先存在的數據庫表(不使用sqlite)
但是,要能夠使用此模式,您需要設置文檔中顯示的主鍵(並嘗試自己;失敗,如this)。
sqlalchemy有什麼方法可以將主鍵設置爲已有的id
列嗎?(理想情況下從Users
對象如下所示)。
順便說一句,我正在使用postgresql(vs sqlite其doesn't seem to allow setting a primary after a table has been created)。
FYI
到目前爲止,我已經能夠成功地訪問數據如下:
from sqlalchemy import Table, MetaData
from sqlalchemy.orm import sessionmaker
metadata = MetaData(engine)
Users = Table('users', metadata, autoload=True)
Session = sessionmaker(bind=engine)
session = Session()
user_q = session.query(Users).filter(Users.c.id==1)
但是這給了我一個名單,我需要使用索引來訪問值。我希望通過屬性(列)名稱爲給定行設置值,如通常在sqlalchemy中完成的那樣(例如,通過user.first_name = "John"
語法)。
當我希望不使用原始sql的解決方案;我不想在使用之前在某個地方定義類(我知道這不是長期建議的模式)。然而,這個答案很有用,因爲這個解決方案也可以用於sqlite。 – Bentley4
如果你想避免遷移中的原始SQL,並且沒有看過,我建議[alembic](http://alembic.zzzcomputing.com/en/latest/)。 –