gpt4 book ai didi

android - ActiveAndroid 添加列并检查是否存在

转载 作者:可可西里 更新时间:2023-11-01 11:42:59 24 4
gpt4 key购买 nike

您好,我正在开发 Android 应用程序,我在其中使用了 active android。我尝试使用迁移将一列添加到我的表中。我尝试使用以下代码:

ALTER TABLE TAGS ADD COLUMN TAG_DATE INTEGER;

它在当前版本上运行良好。但是我有两个旧版本的应用程序。一个 A 已经有 TAG 表,另一个 B 没有 TAG 表。因此,当我尝试从 A 更新到当前版本时,它工作正常。但是当我在这种情况下尝试从 B 到当前版本时,它首先创建带有 TAG 模型类的 TAG 表,在这种情况下它有 TAG_DATE 列,它在执行此脚本时给我重复列错误。所以我想做的是检查列是否已经存在。如果不是,则更改并添加列。

有没有办法在 active-android 脚本中做到这一点。需要一些帮助。谢谢。

最佳答案

在你的 onCreate Application.class 中

ActiveAndroid.initialize(this);
DBHelper.createIfNeedColumn(YOUR_ORM_CLASS, COLUMN_KEY);

和DBHelper.class静态类

public static boolean createIfNeedColumn(Class<? extends Model> type, String column) {
boolean isFound = false;
TableInfo tableInfo = new TableInfo(type);

Collection<Field> columns = tableInfo.getFields();
for (Field f : columns) {
if (column.equals(f.getName())) {
isFound = true;
break;
}
}
if (!isFound) {
ActiveAndroid.execSQL("ALTER TABLE " + tableInfo.getTableName() + " ADD COLUMN " + column + " TEXT;");
}
return isFound;
}

关于android - ActiveAndroid 添加列并检查是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35455126/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com