V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
zuo
V2EX  ›  Python

MySQL 手动修改数据后,使用 Flask-SQLALchemy 需要手动重启 service 数据才会刷新

  •  
  •   zuo · 2015 年 6 月 16 日 · 8619 次点击
    这是一个创建于 3862 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在最近做的一个小项目中,使用了Flask-SQLALchemy ORM来处理应用与数据库之间的连接。暂时没有做管理页面,需要涉及MySQL手动修改某些字段数据!
    但是数据修改后,应用上面并没有更新!需要重启Flask服务,有没有临时的解决方案,避免修改字段后重启服务

    19 条回复    2019-04-04 16:24:26 +08:00
    22too
        1
    22too  
       2015 年 6 月 16 日
    不懂你说的是什么?你的数据库表字段都改了?你的orm字段不用改吗?改完之后难道不需要重启吗?
    realityone
        2
    realityone  
       2015 年 6 月 16 日
    db.session.commit()
    或者
    SQLALCHEMY_COMMIT_ON_TEARDOWN = True
    realityone
        3
    realityone  
       2015 年 6 月 16 日
    @realityone 啊……看错了
    我试了下并没有这种情况啊…
    是因为有 cache ?
    skywatcher
        4
    skywatcher  
       2015 年 6 月 16 日
    一直在用SqlAlchemy,没出现你说的情况
    zuo
        5
    zuo  
    OP
       2015 年 6 月 16 日
    @22too update了数据,没有修改字段!需要重启服务,修改的数据才会更新
    zuo
        6
    zuo  
    OP
       2015 年 6 月 16 日
    @realityone 觉得ORM仅仅是将表与类进行了映射,在MySQL中手动update了数据,应该不会有影响的
    zuo
        7
    zuo  
    OP
       2015 年 6 月 16 日
    @skywatcher 用的是Flask-SQLALchemy 不知道有没有影响
    22too
        8
    22too  
       2015 年 6 月 19 日
    不知道你怎么用的,所以不知道你的具体问题在哪
    theo
        9
    theo  
       2015 年 7 月 25 日
    我用的是 SQLAlchemy,遇到同样问题。
    情况是用两个不同的 Python 服务访问同一个数据库,A 服务执行 add 并 commit 后,数据库中已经能看到新的条目,但 B 服务通过 SQLAlchemy 的 query 无法获取新数据,只有通过原生的 mysql 包才能获取数据。
    zuo
        10
    zuo  
    OP
       2015 年 7 月 29 日
    @theo 估计是SQLAlchemy工作原理的问题,只要程序设计的足够完善,应该会避免手动更改数据的操作
    theo
        11
    theo  
       2015 年 8 月 5 日
    @zuo 如果同一个数据库被两个不同的应用共享(比如网站的前台和后台管理系统),这就是不可避免的了。
    zuo
        12
    zuo  
    OP
       2015 年 8 月 5 日
    @theo 可能是我们两人的设计在某个方面都犯了一个致命的错误,身边也没事又大神可以指导!我为这个问题找了好几天Google都没结果,最后不了了之!
    caimaoy
        13
    caimaoy  
       2016 年 4 月 13 日
    我也遇到这个问题了,肯定是打开方法不对
    caimaoy
        14
    caimaoy  
       2016 年 4 月 13 日
    @theo @zuo 你们解决了这个问题了没啊?
    zuo
        15
    zuo  
    OP
       2016 年 4 月 15 日
    @caimaoy 不了了之了,我也没找到具体的解决方法
    zuo
        16
    zuo  
    OP
       2016 年 4 月 15 日
    @caimaoy 可以看看这个库 github 上面有吗,有得话提 issue 看看
    suzaku
        17
    suzaku  
       2016 年 9 月 9 日
    我也遇到了
    suzaku
        18
    suzaku  
       2016 年 9 月 9 日
    create_engine(config_url, isolation_level="READ UNCOMMITTED")
    在 create_engine 的时候,指定 isolation_level
    outdoxl
        19
    outdoxl  
       2019 年 4 月 4 日
    挖坟
    查询前先 `db.session.commit()` 将当前 session 对象里的缓存提交(清空缓存),查询时就直接从数据库中查询最新数据。
    https://www.cnblogs.com/huchong/p/9258458.html
    https://www.jianshu.com/p/c0a8275cce99
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   2730 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 15:08 · PVG 23:08 · LAX 07:08 · JFK 10:08
    ♥ Do have faith in what you're doing.