Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在应用程序中更改ORMLite数据库结构时会发生什么情况_Java_Android_Ormlite - Fatal编程技术网

Java 在应用程序中更改ORMLite数据库结构时会发生什么情况

Java 在应用程序中更改ORMLite数据库结构时会发生什么情况,java,android,ormlite,Java,Android,Ormlite,我在android应用程序中使用ORMLite数据库,现在我想更改数据库的整体结构,如(重命名表、添加/删除列、更改关系等) 这里的问题是,以前安装过我的应用程序的设备是否会发生冲突?换言之,在更新应用程序时,ORMLite是否会留下以前安装的任何痕迹,从而与新安装发生冲突?!!因此,如果我有一个名为parent的表,并且我将其名称更改为guardian,那么在新版本中我现在会有两个表吗 如果答案是否定的,那么为什么会有类似数据库版本的东西呢 如果答案是是,那么如何删除应用程序中不再存在的表?我

我在android应用程序中使用ORMLite数据库,现在我想更改数据库的整体结构,如(重命名表、添加/删除列、更改关系等)

这里的问题是,以前安装过我的应用程序的设备是否会发生冲突?换言之,在更新应用程序时,ORMLite是否会留下以前安装的任何痕迹,从而与新安装发生冲突?!!因此,如果我有一个名为
parent
的表,并且我将其名称更改为
guardian
,那么在新版本中我现在会有两个表吗

如果答案是否定的,那么为什么会有类似数据库版本的东西呢


如果答案是是,那么如何删除应用程序中不再存在的表?我是否可以使用相同的类名和不同的表名注释来覆盖上一个表?

我没有专门使用ORMLite。但它只是一个ORM,这意味着,它不会根据特定条件决定是否删除该表。这是客户必须根据其业务规则专门做的事情。现在在Android中,有一些特定的方法可以升级当前的数据库模式,而无需删除现有表-

但是在SQLIte上升级数据库模式有很多局限性,即有太多的操作不像成熟的DBMS那样不受支持。但这也是SQLIte如此轻量级的部分原因。通常在您的开发周期中,尽可能早地总结出一个稳定的数据库模式,这在以后需要少量添加(SQLIte特别不支持删除列等)。一旦进入生产环境,并且不想处理用户的数据,实现升级逻辑就是最好的选择

但是如果您仍然想显式删除一个表,我看到ORMLite中也有同样的API-


不幸的是,这对我的情况没有帮助,你给了我假设而不是事实,TableUtils API确实用于删除表,但用于删除现有表。