【发布时间】:2023-03-28 15:33:01
【问题描述】:
我正在使用 Android 和 ORMLite。我是新手,我将数据库升级到版本 2。我有“Auto”类,需要删除列 Alias。
@DatabaseTable(tableName = "Auto")
public class Auto {
public static final String ALIAS = "alias";
public static final String PLACA = "placa";
@DatabaseField(generatedId = true, columnName = "ID")
private int id;
@DatabaseField(canBeNull = false, columnName = ALIAS)
private String alias;
@DatabaseField(canBeNull = false, columnName = PLACA)
public Auto()
{
//ORMLite needs a no-arg constructor
}
public Auto(String alias, String placa) {
this.alias = alias;
this.placa = placa;
}
…..
…..
}
我将 Auto 类更改为...
@DatabaseTable(tableName = "Auto")
public class Auto {
public static final String PLACA = "placa";
@DatabaseField(generatedId = true, columnName = "ID")
private int id;
@DatabaseField(canBeNull = false, columnName = PLACA)
public Auto()
{
//ORMLite needs a no-arg constructor
}
public Auto(String alias, String placa) { this.placa = placa;
}
…..
…..
}
我需要知道 ORMLite 在执行“onUpgradeMethod”时是否自动删除列 Alias 或者我必须像这样手动执行。
@Override
public void onUpgrade(SQLiteDatabase db, ConnectionSource connectionSource, int oldVersion, int newVersion) {
if(oldVersion == 1) {
try {
Dao dao;
dao = getAutoDao();
dao.executeRaw("ALTER TABLE `Auto` DROP COLUMN alias;");
} catch (SQLException e) {
Log.e(DatabaseHelper.class.getName(), "Error ", e);
}
}
}
【问题讨论】:
标签: android database schema upgrade ormlite