使用Sqlite.net Pcl升级数据库,用于Xamarin android

whi*_*ils 5 android upgrade portable-class-library xamarin sqlite.net

我有一个问题,当我发布我的应用程序的新版本时,如果我向我的一个db表添加一个新列,数据库不会更新.如果有新列或新表,任何人都知道如何创建升级版本的脚本?

谢谢

Mat*_*Pag 3

您必须记住,CreateTable 它已经为您进行了列更新,因为它在内部调用了一个名为MigrateTable的方法。

但是,您可能必须处理对数据库的更高级修改,例如添加触发器或类似的操作。在这种情况下,我建议您手动执行修改。

在 Xamarin Forms 中,我最终得到了这个: https://gist.github.com/matpag/b2545cc22c8e22449cd7eaf6b4910396

不可能是最好的策略,但似乎对我有用。

总结
您必须将数据库版本保存在 SQlite 数据库的一个名为 user_version 的内部标志中,可通过 PRAGMA 关键字访问。每次获取数据库连接时,您都必须执行检查,看看当前数据库版本是否与应用程序上一个数据库版本相同。如果没有,您需要执行数据库更新并设置新的当前版本。