Pessoal bom dia! Seguinte recentimente lancei um app na Google, agora estou precisando atulaizar o mesmo, minha dúvida é o seguinte, no onUpgrade eu preciso colocar os scripts de criação das novas tabelas correto? mas ai é que está, no onCreate eu preciso colocar a criação dessas tabelas também para no caso de um novo dispositivo instalar ele apos a atualização já criar as tabelas de inicio ? é isso ? e outra duvida, para que o onUpgrade seja executado basta eu apenas mudar o versionCode no meu Manifest que ela já identifica ?
Hoje meu onCreate já esta rodando assim nos dispostivos instalados
` public SqlVendasMobileHelper(Context context) {
super(context, DBNAME, null, VERSION);
}
public void onCreate(SQLiteDatabase db) {
db.execSQL("PRAGMA encoding = \"UTF-8\"; ");
db.execSQL("CREATE TABLE artigo(_id INTEGER PRIMARY KEY AUTOINCREMENT "
+ ", codigo INTEGER NOT NULL "
+ ", descricao TEXT NOT NULL "
+ ", caracteristicas TEXT ) ;");
db.execSQL("CREATE TABLE parametros(_id INTEGER PRIMARY KEY AUTOINCREMENT "
+ " , timeOut INTEGER "
+ " , timeSocket INTEGER "
+ " , tipo TEXT ) ;");
db.execSQL("insert into parametros(timeOut, timeSocket, tipo) values(5000, 15000, \"D\")");
db.execSQL("insert into parametros(timeOut, timeSocket, tipo) values(0, 0, \"I\")");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}`
bom agora para a nova versão coloquei assim
`@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("PRAGMA encoding = “UTF-8”; ");
db.execSQL("CREATE TABLE artigo(_id INTEGER PRIMARY KEY AUTOINCREMENT "
+ ", codigo INTEGER NOT NULL "
+ ", descricao TEXT NOT NULL "
+ ", caracteristicas TEXT ) ;");
db.execSQL("CREATE TABLE parametros(_id INTEGER PRIMARY KEY AUTOINCREMENT "
+ " , timeOut INTEGER "
+ " , timeSocket INTEGER "
+ " , tipo TEXT ) ;");
db.execSQL("insert into parametros(timeOut, timeSocket, tipo) values(5000, 15000, \"D\")");
db.execSQL("insert into parametros(timeOut, timeSocket, tipo) values(0, 0, \"I\")");
db.execSQL("CREATE TABLE lembreste(_id INTEGER PRIMARY KEY AUTOINCREMENT "
+ " , descricao TEXT "
+ " , dataLembrete DATETIME"
+ " , dataCadastro DATETIME ) ;");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("CREATE TABLE lembreste(_id INTEGER PRIMARY KEY AUTOINCREMENT "
+ " , descricao TEXT "
+ " , dataLembrete DATETIME"
+ " , dataCadastro DATETIME ) ;");
}`
está correto desta forma ?