转储sqlite3数据库以在Titanium中使用

时间:2012-09-03 17:29:18

标签: database sqlite titanium

所以,出于某种原因,我在使用sqlite数据库时遇到了一些麻烦。我正在尝试将我的数据库转储到可以在Titanium中使用的文件中。我知道.dump命令,但是当我尝试使用sqlite网站上的说明时:

  

制作数据库档案副本的好方法是:

     

$ echo '.dump' | sqlite3 ex1 | gzip -c >ex1.dump.gz

并将ex1.dump.gz更改为ex1.sqlite.gz,它会给出一个无用的混乱文件。如何转储我的数据库,以便我可以在我的Titanium Studios移动应用程序中使用它?

2 个答案:

答案 0 :(得分:1)

为什么要在简单复制数据库时转储数据库文件,即按原样使用它?

正如here所述,sqlite数据库是跨平台的:

  

SQLite中的数据库是单个磁盘文件。此外,该文件   格式是跨平台的。在一台计算机上创建的数据库   可以在不同的机器上复制和使用   建筑。 SQLite数据库可以跨32位和64位移植   机器以及big-endian和little-endian架构之间。

另一方面,您应该能够像这样转储,压缩数据库:

echo '.dump' | sqlite3 foo.db | gzip -c > foo.dump.gz

并在新的SQLite数据库中恢复它:

gunzip -c foo.dump.gz | sqlite3 foo.new.db

答案 1 :(得分:1)

.dump将数据库的内容导出为一系列insert语句。如果在没有gzip命令的情况下运行它,您将看到纯文本sql:

$ echo '.dump' | sqlite3 ex1

但是你不需要在Titanium Studios中使用SQLite数据库。它原生支持SQLite。只需将数据库文件复制到项目目录,然后使用这样的代码打开它:

var db = Ti.Database.install('../products.sqlite','products');  

var rows = db.execute('SELECT DISTINCT category FROM products');  

此处有更多详情:

http://mobile.tutsplus.com/tutorials/appcelerator/titanium-mobile-database-driven-tables-with-sqlite/