Olá, estou reabrindo esse topico porque não consegui atualizar as tabelas do banco de dados sqlite.
Na Classe DataBaseHelper no método onUpgrade() fiz assim:
-- Na Classe DataBaseHelper no método onUpgrade() fiz assim:
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, ConnectionSource connectionSource, int oldVersion, int newVersion) {
try {
getTrabalhadorDao();
trabalhadorDao.executeRaw("ALTER TABLE 'trabalhadores' ADD COLUMN datadeentrada DATETIME);");
onCreate(sqLiteDatabase, connectionSource);
} catch (SQLException e) {
Log.e("APP", "onUpgrade() " + e.getLocalizedMessage());
}
}
Ele da esse erro no console e não cria o campo
java.sql.SQLException: Could not run raw execute statement ALTER TABLE 'trabalhadores' ADD COLUMN datadeentrada DATETIME;
Alguém pode ajudar?
Em seg, 2 de mar de 2015 às 16:56, Ivo Sestren Junior <ivo@sestren.com.br> escreveu:
Tens que verificar a versão pelo oldVersion e newVersion e rodar os comandos necessários só destas versões.Pelo seu exemplo, o onUpdate você esta dando um dropTable, é claro que com isto sua tabela será apagada, juntamente com todos os dados sempre que atualizar a versão.2015-03-02 16:45 GMT-03:00 Márcio Fornari <marciofornari@gmail.com>:--Faz tempo que não trabalho com ormLite, mas no caso vc teria que verificar a versão do seu banco e fazer por exemplo assim:if (oldVersion < 2) { // we added the age column in version 2 dao.executeRaw("ALTER TABLE `account` ADD COLUMN age INTEGER;"); } if (oldVersion < 3) { // we added the weight column in version 3 dao.executeRaw("ALTER TABLE `account` ADD COLUMN weight INTEGER;"); }
Em 2 de março de 2015 16:34, Ricardo Cardoso <rick.duk@gmail.com> escreveu:Toda vez que gero uma versão nova da base de dados, meu banco de dados mobile é completamente apagado...--Tipo, se eu alterei apenas alguns campos na tabela preciso criar uma nova versão do banco de dados, quando faço isso ele apaga e cria de novo, creio que não entendi muito bem como funciona o metodo onUpgrade(). Meu databaseHelper está assim:public class DataBaseHelper extends OrmLiteSqliteOpenHelper{private static final String DATABASE_NAME = "database.db";private static final int DATABASE_VERSION = 13;private Dao<Tabela01, Long> tabela01Dao = null;private Dao<Tabela02, Long> tabela02Dao = null;public DataBaseHelper(Context context){super(context, DATABASE_NAME, null, DATABASE_VERSION, R.raw.ormlite_config);}@Overridepublic void onCreate(SQLiteDatabase sqLiteDatabase, ConnectionSource connectionSource) {try {TableUtils.createTable(connectionSource, Tabela01.class);TableUtils.createTable(connectionSource, Tabela02.class);} catch (SQLException e) {e.printStackTrace();}}@Overridepublic void onUpgrade(SQLiteDatabase sqLiteDatabase, ConnectionSource connectionSource, int oldVersion, int newVersion) {try {TableUtils.dropTable(connectionSource, Tabela01.class, true);TableUtils.dropTable(connectionSource, Tabela02.class, true);onCreate(sqLiteDatabase, connectionSource);} catch (SQLException e) {e.printStackTrace();}}Se mudo alguma coisa na tabela02 preciso que só atualize ela, sem perder os dados.... tem jeito?
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--............
Márcio Fornari
..........................................................................--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
0 comentários:
Postar um comentário