0

我有一个本地数据库设置,我使用 SQLAlchemy 对象创建对象关系映射。

一切都很好,直到我更改了数据库的架构 - 包括向其中一个表添加一个新列。现在我不断看到:

sqlalchemy.exc.NoReferencedColumnError:无法初始化表 'ModelPrice' 上的 ForeignKey 'ModelFit.id' 的目标列:表 'ModelFit' 没有名为 'id' 的列

其中 'id' 是 ModelFit 表的“Id”列的 SQLALchemy Column 对象。

新数据库上的直接 SQL 查询执行良好,唯一的问题是初始化此映射。

我从某人那里看到了一个类似的问题,他们说他们通过“从项目中删除 .db 文件并再次运行它”来解决这个问题,但我没有任何这样的文件。我什至不使用烧瓶或任何东西来创建数据库,而是使用 SQL 在本地数据库中直接完成的。

关于这里发生的事情的任何帮助或见解?或者更多信息会有所帮助吗?

4

1 回答 1

0

最终弄清楚了-似乎列的顺序必须相同。在架构上运行 ALTER TABLE 以添加“Id”列将其添加到右侧。我的 SQLAlchemy 类将“id”列列为第一个。

我无法确认原因,因为我没有查看文档中可以确认这一点的部分,但有趣的是,情况就是这样。

所以基本上不得不删除表格并按照所需的顺序重新制作。

于 2020-12-03T20:04:37.003 回答