Database 转储sqlite3数据库以用于钛

Database 转储sqlite3数据库以用于钛,database,sqlite,titanium,Database,Sqlite,Titanium,因此,出于某种原因,我的sqlite数据库有点问题。我正试图将我的数据库转储到一个可以在Tianium中使用的文件中。我知道.dump命令,但当我尝试使用sqlite网站上的说明时: 制作数据库存档副本的一个好方法是: $echo.dump'| sqlite3ex1 | gzip-c>ex1.dump.gz 并将ex1.dump.gz更改为ex1.sqlite.gz,这样会产生一个非常混乱的文件,它是无用的。我如何转储数据库,以便在我的Tianium Studio移动应用程序中使用它?当您可以简

因此,出于某种原因,我的sqlite数据库有点问题。我正试图将我的数据库转储到一个可以在Tianium中使用的文件中。我知道
.dump
命令,但当我尝试使用sqlite网站上的说明时:

制作数据库存档副本的一个好方法是:

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


并将
ex1.dump.gz
更改为
ex1.sqlite.gz
,这样会产生一个非常混乱的文件,它是无用的。我如何转储数据库,以便在我的Tianium Studio移动应用程序中使用它?

当您可以简单地复制数据库文件,即按原样使用它时,为什么要转储它

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

SQLite中的数据库是单个磁盘文件。此外,该文件 格式是跨平台的。在一台计算机上创建的数据库 可以复制并在不同机器上使用不同的 建筑学SQLite数据库可以跨32位和64位进行移植 在大端和小端体系结构之间的机器

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

echo '.dump' | sqlite3 foo.db | gzip -c > foo.dump.gz
并将其恢复到新的SQLite数据库中:

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

.dump
将数据库内容导出为一系列insert语句。如果不使用
gzip
命令运行它,您将看到纯文本sql:

$ echo '.dump' | sqlite3 ex1
但在Tianium Studio中使用SQLite数据库不需要这样做。它本机支持SQLite。只需将数据库文件复制到项目目录,然后使用如下代码打开它:

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

var rows = db.execute('SELECT DISTINCT category FROM products');  
详情如下:


两个答案说的都是同一件事,但你的答案更具相关性。我只是复制了我在sqlite3中使用的文件,然后将其移动到我应用程序中的resources文件夹中。虽然我只是想知道,
select distict category
select category
之间有什么区别吗?我应该使用哪一个?@undacovabroda45,
select distinct
将过滤掉重复项,
select
本身将包含所有结果,甚至重复项。@undacovabroda45:我想我是一个有点失败的人,但我的答案怎么会不那么相关,因为我把它作为一个一般点,而不是钛合金点,sqlite文件是跨平台的。此外,您选择的答案与我在后面提出的两点相同,尽管有更多关于使用.dump的细节,但再次没有更多关于sqlite可移植性的细节。是的,我知道。你的两个答案当然都是正确的。一天结束时,你的答案之间真的没有差别。我确实先看到了你的答案,所以我会在信用到期的地方恢复信用。