mysql - AttributeError: ’module’ object has no attribute ’MatchType’
问题描述
ct = db.session.query(CIType).filter(CIType.type_name == key).first() or db.session.query(CIType).filter(CIType.type_id == key).first()
线上有时候会报错,暂时找不到原因,有遇到过的么?
2016-08-11 14:27:26,177 ERROR /usr/lib/python2.6/site-packages/flask/app.py 1306 - Exception on /api/v0.1/projects/search-indexer-rafael/product [GET]Traceback (most recent call last): File '/usr/lib/python2.6/site-packages/flask/app.py', line 1687, in wsgi_app response = self.full_dispatch_request() File '/usr/lib/python2.6/site-packages/flask/app.py', line 1360, in full_dispatch_request rv = self.handle_user_exception(e) File '/usr/lib/python2.6/site-packages/flask/app.py', line 1358, in full_dispatch_request rv = self.dispatch_request() File '/usr/lib/python2.6/site-packages/flask/app.py', line 1344, in dispatch_request return self.view_functions[rule.endpoint](**req.view_args) File '/data/webapps/cmdb-api/core/special.py', line 175, in get_project_product product = ProjectManager().get_for_product(project_name) File '/data/webapps/cmdb-api/lib/special/project.py', line 18, in __init__ self.ci_type = CITypeCache.get('project') File '/data/webapps/cmdb-api/models/cmdb.py', line 458, in get ct = db.session.query(CIType).filter( File '/usr/lib64/python2.6/site-packages/sqlalchemy/orm/scoping.py', line 149, in do def do(self, *args, **kwargs): File '/usr/lib64/python2.6/site-packages/sqlalchemy/util/_collections.py', line 903, in __call__ item = dict.get(self, key) File '/usr/lib/python2.6/site-packages/flask_sqlalchemy.py', line 201, in __init__ bind=db.engine, File '/usr/lib/python2.6/site-packages/flask_sqlalchemy.py', line 754, in engine return self.get_engine(self.get_app()) File '/usr/lib/python2.6/site-packages/flask_sqlalchemy.py', line 771, in get_engine return connector.get_engine() File '/usr/lib/python2.6/site-packages/flask_sqlalchemy.py', line 451, in get_engine self._engine = rv = sqlalchemy.create_engine(info, **options) File '/usr/lib64/python2.6/site-packages/sqlalchemy/engine/__init__.py', line 344, in create_engine of 0 indicates no limit; to disable pooling, set ``poolclass`` to File '/usr/lib64/python2.6/site-packages/sqlalchemy/engine/strategies.py', line 50, in create File '/usr/lib64/python2.6/site-packages/sqlalchemy/engine/url.py', line 116, in get_dialect return self.get_dialect().driver File '/usr/lib64/python2.6/site-packages/sqlalchemy/util/langhelpers.py', line 170, in load fn.__func__.__doc__ = doc File '/usr/lib64/python2.6/site-packages/sqlalchemy/dialects/__init__.py', line 33, in _auto_fn try: File '/usr/lib64/python2.6/site-packages/sqlalchemy/dialects/mysql/__init__.py', line 8, in <module> from . import base, mysqldb, oursql, File '/usr/lib64/python2.6/site-packages/sqlalchemy/dialects/mysql/base.py', line 681, in <module> class _MatchType(sqltypes.Float, sqltypes.MatchType):AttributeError: ’module’ object has no attribute ’MatchType’
代码
@special.route('/api/v0.1/projects/<string:project_name>/product', methods=['GET'])def get_project_product(project_name): product = ProjectManager().get_for_product(project_name) return jsonify(product=product)...
goto
class ProjectManager(object): def __init__(self):self.ci_type = CITypeCache.get('project')...
then
class CITypeCache(object): @classmethod def get(cls, key):if key is None: returnct = cache.get('CIType::ID::%s' % key) or cache.get('CIType::Name::%s' % key)if ct is None: ct = db.session.query(CIType).filter(CIType.type_name == key).first() or db.session.query(CIType).filter(CIType.type_id == key).first() if ct is not None:CITypeCache.set(ct)return ct
sqlalchemy 版本:SQLAlchemy-1.0.8-py2.6.egg-info
问题解答
回答1:查看一下sqlalchemy的版本
再检查一下这个路径sqlalchemy.types.MatchType是否存在
翻看一下sql的代码,1.1代码和1.0.8的代码实现都不一样了,升级一下呗
相关文章:
1. python如何不改动文件的情况下修改文件的 修改日期2. angular.js - 不适用其他构建工具,怎么搭建angular1项目3. angular.js - Angular路由和express路由的组合使用问题4. python - django 里自定义的 login 方法,如何使用 login_required()5. java8中,逻辑与 & 符号用在接口类上代表什么意思6. mysql优化 - mysql count(id)查询速度如何优化?7. mysql主从 - 请教下mysql 主动-被动模式的双主配置 和 主从配置在应用上有什么区别?8. 主从备份 - 跪求mysql 高可用主从方案9. node.js - node_moduls太多了10. python - 关于ACK标志位的TCP端口扫描的疑惑?
