大概用了三個小時的時間.spa
models.pycode
class DriveRecord(db.Model): """drive record model""" id = db.Column(db.Integer(), primary_key=True) piolt_id = db.Column(db.Integer(), db.ForeignKey("piolt.id")) request = db.Column(db.Text()) response = db.Column(db.Text()) logs = db.relationship( "Log", backref="driverecord", lazy="dynamic" ) class Log(db.Model): """log""" id = db.Column(db.Integer(), primary_key=True) driverecord_id = db.Column(db.Integer(), db.ForeignKey("driverecord.id")) command = db.Column(db.String(50)) sn = db.Column(db.String(50)) hostname = db.Column(db.String(100)) idc = db.Column(db.String(50)) ip = db.Column(db.String(50)) iloip = db.Column(db.String(50)) result = db.Column(db.Text()) req_time = db.Column(db.DateTime()) resp_time = db.Column(db.DateTime())
執行 db.create_all(), 報錯: NoReferencedTableError: Foreign key associated with column 'log.driverecord_id' could not find table 'driverecord' with which to generate a foreign key to target column 'id'blog
找不到 driverecord, 然鵝, 檢測了拼寫以後, 確認沒有問題.ip
直到一位老司機想起一個細節, DriveRecord 類, 建立的 table 名應該是 drive_record!ci
改爲 db.ForeignKey("drive_record.id") 以後, 順利建立.get