【发布时间】:2019-03-14 16:00:43
【问题描述】:
我正在尝试使用 Flask_SQLAlchemy 限制烧瓶中数据库的大小。当文件大小接近某个限制时,我想开始删除最旧的行。我想出了如何从数据库的开头删除行,但是文件大小并没有缩小,因为没有开启吸尘(我认为)。
有没有办法在 SQLAlchemy 中启用或更好的方法来管理数据库的文件大小?我是数据库新手,因此不胜感激。
谢谢!
【问题讨论】:
标签: python-3.x flask flask-sqlalchemy
我正在尝试使用 Flask_SQLAlchemy 限制烧瓶中数据库的大小。当文件大小接近某个限制时,我想开始删除最旧的行。我想出了如何从数据库的开头删除行,但是文件大小并没有缩小,因为没有开启吸尘(我认为)。
有没有办法在 SQLAlchemy 中启用或更好的方法来管理数据库的文件大小?我是数据库新手,因此不胜感激。
谢谢!
【问题讨论】:
标签: python-3.x flask flask-sqlalchemy
所以我找到了一种在 python 中使用 SQLite3 的方法,我将在此处添加它,以防有人找到此页面并需要帮助。删除后要清理,我只运行了这三个命令。
self.con = sqlite3.connect(databasename) # Open the database in sqlite
self.con.execute("VACUUM") # Execute the vacuum command
self.con.close() # Close the database
如果有人有更好的方法来做到这一点,这是 SQLAlchemy 原生的,请告诉我们!
【讨论】:
我使用我的 db = SQLAlchemy() 对象
并调用
with db.engine.begin() as conn:
conn.execute("VACUUM")
【讨论】: