我整改代码的时候,好不容易把Follow删干净了,却发现Collect数据表与Follow数据表出了一个相同的问题

(只不过这个问题是Follow的冰山一角)

 

于是我一看。数据表里本来有一列叫id,现在被删掉了,原因是继承了djask的Model类,id在这个类里面已经定义了。

我仔细想想,既然是id报错了,那么一定是id那里出了问题。

于是我第一步是将Collect的id一列加上。由于本来并没有一个叫id的列,很显然我这样的行为是会报错的。

 

后来发现,create_at和updated_at都成功地继承了。我觉得是因为本来不存在id列的数据表现在多了id导致的问题。包括本来没有id的Follow。

于是我自己动手造轮子把Djask的Model重新写了一遍,只不过换了名字去掉了id。

后来发现问题更大了,本来还有47个测试能过,现在一个都过不去。

我开始焦头烂额了。

 

后来我注意到了一个问题。

这是Djask源码:id = sa.Column(sa.Integer, primary_key=True)

这是Flog源码:collector_id = db.Column(db.Integer, db.ForeignKey("user.id"), primary_key=True)

我们是不是定义了两个primary_key?

 

于是我把之前造的轮子一行一行注释掉,然后删掉了collector_id里面的primary_key=True。

 

测试tm竟然通过了。

我tm造这个轮子有何用?!!!!

2 comments
latest

  • Itachi
    Admin

    心疼你一分钟...

    唉,看来我在Flog和Djask里挖的坑有点多呀

  • Itachi
    Admin

    忘了告诉你,那里就是我在live share里说改好了但没测试就不知怎么卡掉线了的地方。

    本来我想自己处理自己挖的坑的,谁知道,竟然...