项目部署sqlalchemy出现数据表已经存在

img


在我运行代码时


sqlalchemy.exc.ProgrammingError: (pymysql.err.ProgrammingError) (1146, "Table 'cov.gongzuo' doesn't exist")
[SQL: SELECT gongzuo.id AS gongzuo_id, gongzuo.title AS gongzuo_title, gongzuo.content AS gongzuo_content, gongzuo.url AS gongzuo_url 
FROM gongzuo ORDER BY gongzuo.id]
(Background on this error at: https://sqlalche.me/e/14/f405)
2023-04-06 18:56:06,795 INFO sqlalchemy.engine.Engine ROLLBACK
192.168.137.1 - - [06/Apr/2023 18:56:06] "GET /policy HTTP/1.1" 500 -

不清楚是哪里做错了,麻烦各位

该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:
根据错误提示,您的代码在执行一个查询语句时出现了错误,因为查询的表格 "gongzuo" 不存在。这通常是因为您在代码中定义了一个对该表格的查询,但是在数据库中该表格并不存在,因此需要在数据库中创建该表格。

您可以通过在SQLAlchemy中使用Table对象来创建数据库表格。以下是一个示例代码,用于创建名为 "gongzuo" 的表格:

from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base

# 创建连接数据库的引擎
engine = create_engine('mysql+pymysql://username:password@host:port/database')

# 创建一个基类,用于定义ORM模型
Base = declarative_base()

class Gongzuo(Base):
    __tablename__ = 'gongzuo'

    id = Column(Integer, primary_key=True)
    title = Column(String(255))
    content = Column(String(1024))
    url = Column(String(255))

# 创建表格
Base.metadata.create_all(engine)

在上面的代码中,我们首先创建了一个连接数据库的引擎,然后定义了一个基类 Base,用于定义ORM模型。在 Gongzuo 模型中,我们定义了一个名为 __tablename__ 的特殊属性,用于指定该模型对应的数据库表格名称。然后,我们定义了三个列,分别对应表格中的三个字段。最后,我们通过调用 Base.metadata.create_all(engine) 来创建数据库表格。

如果您已经运行过类似的代码来创建表格,但是仍然出现了错误提示,可能是因为您的代码中存在一些问题,可能是:

  • 表格名字拼写错误,导致创建的表格名称与查询时使用的名称不同。
  • 数据库连接字符串错误,导致程序连接到了错误的数据库。
  • 数据库中存在同名的表格,但是表格结构不同。

您可以检查以上问题,然后修改代码并重新运行,看看是否能够解决问题。


如果以上回答对您有所帮助,点击一下采纳该答案~谢谢

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^