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的主要内容,如果未能解决你的问题,请参考以下文章

Google Gears SQLite DB 和 C#

Google Gears - 同步支持到啥级别?

如何在 Firefox 4 上运行 Google Gears 扩展?

有人在企业场景中使用过 Google Gears 吗?

Google Gears 真的是一个长期的解决方案吗?

对于文件上传,Google gears HTML 5 哪个更好?