所以,出于某种原因,我在使用sqlite数据库时遇到了一些麻烦。我正在尝试将我的数据库转储到可以在Titanium中使用的文件中。我知道.dump
命令,但是当我尝试使用sqlite网站上的说明时:
制作数据库档案副本的好方法是:
$ echo '.dump' | sqlite3 ex1 | gzip -c >ex1.dump.gz
并将ex1.dump.gz
更改为ex1.sqlite.gz
,它会给出一个无用的混乱文件。如何转储我的数据库,以便我可以在我的Titanium Studios移动应用程序中使用它?
答案 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');
此处有更多详情: