在Lua中更新数据库版本。

我正在尝试更新数据库版本,但遇到了奇怪的问题......下面是我的代码:

version = 2
local cur_db_version=nil
for data in db:nrows("PRAGMA user_version") do
    cur_db_version=data
    break
end
local db_version=cur_db_version.user_version
print(db_version)
print(version)
if (db_version~=version) then
    create()
    db:exec("PRAGMA user_version="..version)
end

假设数据库版本是 1,我期望我的脚本输出如下:

1
2

但它实际输出的是:

2
2

为什么?我不知道,但我确信如果我注释掉 db:exec("PRAGMA user_version="..version) 这一行,它真正输出的就是:

1
2

那么,我的代码出了什么问题导致了错误的输出呢?db:exec("PRAGMA user_version="..version) 这一行是否在打印之前执行了?如果是,那么我该如何修改我的代码,以便它只在 version 改变时调用 create()

顺便说一下,我正在使用 Corona SDK,但我不认为问题与它有关系,对吧?

点赞
用户736007
用户736007

好的,我找到了问题......上面的代码是正确的,问题出在我在 sublime 上用来在保存文件时重新启动模拟器的脚本上,发生的情况是这个脚本有时会连续两次重新启动模拟器,由于我有很多打印输出,所以我没有看到控制台上面的正确输出...

我会保留这个问题,因为可能会有其他人想知道如何在 corona/lua 上更新数据库版本。

2013-10-21 14:27:00