Google Gears - 数据库 - VACUUM
Posted
技术标签:
【中文标题】Google Gears - 数据库 - VACUUM【英文标题】:Google Gears - Database - VACUUM 【发布时间】:2011-02-07 14:44:22 【问题描述】:使用此代码:
var db = google.gears.factory.create('beta.database');
db.open('cominar');
db.execute('CREATE TABLE IF NOT EXISTS Ajax (AJAX_ID INTEGER PRIMARY KEY AUTOINCREMENT , MODULE TEXT, FUNCTION TEXT, CONTENT_JSON TEXT);');
db.execute('VACUUM;'); // nettoye la DB
我在每次初始化时都尝试clean the database (VACUUM),但我得到了这个错误:
未捕获的错误:数据库操作 失败的。错误:授权被拒绝 详情:未授权
数据库是我创建的(同一页)。
谢谢!
【问题讨论】:
【参考方案1】:我认为这是不允许的操作,所以 Gears 团队不允许用户使用 Sqlite 的这个功能。并非所有操作都允许从 javascript 进行。例如附加数据库可能很危险,因此不允许这样做。
【讨论】:
在 Gears/Database 文档中,ATTACH and DETACH
被禁用,但没有关于 VACUUM 的消息。但是,PRAGMA auto_vacuum = 1;
是默认设置的。
在 PRAGMA 设置中的code.google.com/apis/gears/api_database.html 有这样的事情:随着时间的推移,数据库文件可能会被数据被删除的空白所填满。这些差距可以通过 VACUUM 命令恢复,但是 VACUUM 可以长时间锁定数据库,这使得集成到交互式应用程序中成为一项挑战。 auto_vacuum 模式会在这些间隙生成时逐步恢复它们。以上是关于Google Gears - 数据库 - VACUUM的主要内容,如果未能解决你的问题,请参考以下文章