在iOS中初始化和升级FMDB数据库版本

在iOS中初始化和升级FMDB数据库版本,ios,sqlite,fmdb,Ios,Sqlite,Fmdb,我在iOS应用程序中使用FMDB和Sqllite。我知道如何以编程方式创建数据库和表,但我不知道在哪里编写代码,所以它是第一次运行的。若我在应用程序:didfishLaunching方法中编写代码,那个么每次打开应用程序时它都会运行。是否有任何方法可以初始化/创建数据库和数据库表 另一个问题是,假设在上传新版本的应用程序时,我需要在数据库中做一些更改,那么我需要用哪种方法编写代码,这样,它只会第一次执行 期待您的来信 谢谢,, Shailesh您可以检查沙盒的Documents目录中是否存在sq

我在iOS应用程序中使用FMDB和Sqllite。我知道如何以编程方式创建数据库和表,但我不知道在哪里编写代码,所以它是第一次运行的。若我在应用程序:didfishLaunching方法中编写代码,那个么每次打开应用程序时它都会运行。是否有任何方法可以初始化/创建数据库和数据库表

另一个问题是,假设在上传新版本的应用程序时,我需要在数据库中做一些更改,那么我需要用哪种方法编写代码,这样,它只会第一次执行

期待您的来信

谢谢,,
Shailesh

您可以检查沙盒的Documents目录中是否存在sqlite文件,因此如果存在,您可以确保您已经初始化/创建了DB和DB表。

如果您需要在每次打开应用程序时检查数据库是否存在,则此代码将执行此操作。将其放入应用程序将使用选项完成启动:


对于第二个问题,您需要有一个版本号

并对照代码中的版本号进行检查,如果数据库版本号小于代码版本号,请调用的方法进行升级


您应该将此验证放在ApplicationIDFinishLaunching方法中

根据此回答,您不会每次打开应用程序时都执行数据库创建方法。您好,非常感谢您的回复。是的,这是解决方案,但为此,我需要每次检查。有什么方法我可以简单地初始化。若假设我上传应用程序版本时需要对数据库进行任何更改,那个么有什么方法吗?
FMDatabase *db = [FMDatabase databaseWithPath:PATH];
uint32_t version = [db userVersion]