In my previous app release I had a table created like:
public static final String CREATE_DATABASE = "CREATE TABLE " + TABLE_NAME
+ "(_id INTEGER PRIMARY KEY AUTOINCREMENT," + COLUMN_NAME_TITLE + " TEXT, "
+ COLUMN_NAME_LOGIN + " TEXT, " + COLUMN_NAME_PASSWORD + " TEXT, " + COLUMN_NAME_NOTES
+ " TEXT);";
In current version I have a table created like:
public static final String CREATE_DATABASE = "CREATE VIRTUAL TABLE " + TABLE_NAME + " USING fts3 "
+ "(_id INTEGER PRIMARY KEY AUTOINCREMENT," + COLUMN_NAME_TITLE + " TEXT, "
+ COLUMN_NAME_LOGIN + " TEXT, " + COLUMN_NAME_PASSWORD + " TEXT, " + COLUMN_NAME_NOTES
+ " TEXT, " + COLUMN_NAME_FAV + " INTEGER DEFAULT 0, " + KEY_WORD + ");";
So now it is VIRTUAL, created USING fts3 and added two new columns COLUMN_NAME_FAV and KEY_WORD.
Is that possible to ALTER the table somehow on upgrade? If not, what shall I do so users don’t lose their data?
It is not possible to run a simple alter command that will convert a regular table to a
VIRTUALtable.Instead of that you should:
DROPthe old table.CREATEthe new table.