临时解决办法:

在models文件导入db后,加上如下代码:

db.metadata.clear()

但解决问题的根本之处还是在于找到,为何会声明了2次类的定义呢?

解析:

table 'roles_users' is already defined for this MetaData instance,意思是说表XX已经定义。这个在于你想干嘛。

第一,如果你想删除旧类并重新生成新的映射类

那么在定义类之前尝试运行以下行:

db.metadata.clear()

原因是第一次通过定义python类声明SQLAlchemy Mapping时,类的定义将保存到元数据对象中,以防止多个定义映射到同一个表所导致的冲突。当您调用该clear()方法时,您将清除元数据对象在内存中保存的所有表定义,这允许您再次声明它们。

第二,保留你的旧类,然后重启你的应用程序

可以使用reflect方法编写测试以查看表是否已存在:

db.metadata.reflect(engine=engine)

其中engine是您使用创建的数据库连接create_engine(),并查看您的表是否已存在,并且只有在未定义表时才定义该类。

参考:https://stackoverflow.com/questions/37908767/table-roles-users-is-already-defined-for-this-metadata-instance

原文出处:

https://blog.csdn.net/BridgeHong/article/details/88999316

sqlalchemy.exc.InvalidRequestError: Table 'run_result' is already defined for this MetaData instance的更多相关文章

  1. Superset安装出错 sqlalchemy.exc.InvalidRequestError: Can't determine which FROM clause to join from, ...

    $ superset db upgrade ... Traceback (most recent call last): File "/home/jhadmin/.pyenv/version ...

  2. sqlalchemy.exc.InvalidRequestError: Entity '<class 'model.TestCase'>' has no property 'project'

    原因: 修改表结构,但没有更新数据模型造成的 解决办法: 在sqlalchemy提供的表模型中增加project字段的描述信息 这次修改测试框架我有点想不起来,在测试代码中,是怎么通过sqlalche ...

  3. sqlalchemy.exc.StatementError: (sqlalchemy.exc.InvalidRequestError) Can't reconnect until invalid transaction is rolled back

    从这段话获得灵感 重新启动flask shell之后就好了

  4. sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) Cannot add a NOT NULL column with default value NULL [SQL: u'ALTER TABLE address_scopes ADD COLUMN ip_version INTEGER NOT NULL']

    root@hett-virtual-machine:~# su -s /bin/sh -c "neutron-db-manage --config-file /etc/neutron/neu ...

  5. sqlalchemy.exc.CompileError: (in table 'user', column 'username'): VARCHAR requires a length on dialect mysql

    映射数据库时报错:sqlalchemy.exc.CompileError: (in table 'user', column 'username'): VARCHAR requires a lengt ...

  6. sqlalchemy.exc.InternalError: (pymysql.err.InternalError) (1091, "Can't DROP 'users_ibfk_1'; check that column/key exists") [SQL: ALTER TABLE users DROP FOREIGN KEY users_ibfk_1]

    flask 迁移数据库报错 报错: sqlalchemy.exc.InternalError: (pymysql.err.InternalError) (1091, "Can't DROP ...

  7. sqlalchemy.exc.ProgrammingError: (pymysql.err.ProgrammingError)

    在我学习flask建立网站时间碰到了一个棘手的问题,就是在我进行操作日志的更新时间,发现表格建立有点错误,导致表缺失,从而报了下面的错误 sqlalchemy.exc.ProgrammingError ...

  8. Unexpected API Error. Please report this at http://bugs.launchpad.net/nova/ and attach the Nova API log if possible. <class 'sqlalchemy.exc.OperationalError'> (HTTP 500) (Request-ID: req-6ac88345-ce5a

    Unexpected API Error. Please report this at http://bugs.launchpad.net/nova/ and attach the Nova API ...

  9. flask建表遇到的错误: flask,sqlalchemy.exc.OperationalError: (MySQLdb._exceptions.OperationalError) (1071, 'Specified key was too long; max key length is 767 bytes')

    error:flask,sqlalchemy.exc.OperationalError: (MySQLdb._exceptions.OperationalError) (1071, 'Specifie ...

随机推荐

  1. Deadlock_synchromized-Java_se

    class Test implements Runnable{ private boolean flag; Test(boolean flag) { this.flag = flag; } publi ...

  2. 一个常用的通过curl发送HTTP请求的函数

    function: function curl_get($url, $params) { return curl_http($url, $params, 'GET'); } function curl ...

  3. Flask开发系列之Flask+redis实现IP代理池

    Flask开发系列之Flask+redis实现IP代理池 代理池的要求 多站抓取,异步检测:多站抓取:指的是我们需要从各大免费的ip代理网站,把他们公开的一些免费代理抓取下来:一步检测指的是:把这些代 ...

  4. 关于session和cookie的区别

    以前对于session和cookie的认识,就只是粗略的知道cookie保存在客户端,而session则保存在服务端. 如今查了些资料,对session和cookie也有了一个初步的认识,现在来总结一 ...

  5. scrapy中间件之随机user-agent

    import random class UserAgentMiddleware(object): def __init__(self): self.user_agent_list = [ " ...

  6. TensorRt安装

    1.下载 https://developer.nvidia.com/nvidia-tensorrt-5x-download 选择5 GA版本,注意选择与自己CUDA匹配的版本 2.安装 参考:http ...

  7. vue2.0 笔记(杂记)

    一.vue class.style表达式的类型: 字符串.对象和数组1.字符串 <div class="static" v-bind:class="class-a& ...

  8. Error: unable to perform an operation on node 'rabbit@DESKTOP-6JT7D2H'. Please see diagnostics information and suggestions below.

    https://blog.csdn.net/qq_32814555/article/details/79494533

  9. Mysql定时器定时删除表数据

    由于测试环境有张日志表没定时2分钟程序就狂插数据,导致不到1一个月时间,这张日志表就占用了6.7G的空间,但是日志刷新较快,有些日志就没什么作用,就写了个定时器,定期删除这张表的数据 首先先查看mys ...

  10. 风控MIS那些事

    信贷风险管理应基于数据进行决策,MIS则是通过对数据的加工与展示,给决策者提供参考. 管理信息系统(ManagementInformation System,MIS)是进行信息的 收集.传输.加工.储 ...