Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Erro na coluna telefoneFIxo.

Ola bom dia,

Estou com um erro na projeto:

     Caused by: android.database.sqlite.SQLiteException: no such column: telefoneTipo (code 1 SQLITE_ERROR): , while compiling: INSERT INTO Telefone (numero, alunoId) SELECT telefoneTipo, id FROM Aluno

O erro fala que esta na coluna telefoneFixo.

Aqui minha class AgentaMigration:

class AgentaMigrations {

    private static final Migration MIGRATION_1_2 = new Migration(1, 2) {
        @Override
        public void migrate(@NonNull SupportSQLiteDatabase database){
            database.execSQL("ALTER TABLE Aluno ADD COLUMN sobrenome TEXT");
        }
    };

    private static final Migration MIGRATION_2_3 = new Migration(2, 3){
        @Override
        public void migrate(@NonNull SupportSQLiteDatabase database) {  // Criar nova tabela com as informacoes desejadas
            database.execSQL("CREATE TABLE IF NOT EXISTS `Aluno_novo` " +
                    " (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL," + " `nome` TEXT, " + " `telefone` TEXT, " + "  `email` TEXT)");

            // Copiar dados da tabela antiga para a nova
            database.execSQL("INSERT INTO Aluno_novo (id, nome, telefone, email) " + "SELECT id, nome, telefone, email FROM Aluno");

            database.execSQL("DROP TABLE Aluno"); // Remove tabela antiga

            database.execSQL("ALTER TABLE Aluno_novo RENAME TO Aluno");  // Renomear a tabela nova com o nome da tabela antiga
        }
    };

    private static final Migration MIGRATION_3_4 = new Migration(3, 4){
        @Override
        public void migrate(@NonNull SupportSQLiteDatabase database) {
            database.execSQL("ALTER TABLE Aluno ADD COLUMN momentoCadastro INTEGER");
        }
    };

    private static final Migration MIGRATION_4_5 = new Migration(4, 5){
        @Override
        public void migrate(@NonNull SupportSQLiteDatabase database){
            database.execSQL("CREATE TABLE IF NOT EXISTS `Aluno_novo` " +
                    "(`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `nome` TEXT, `telefone_fixo` TEXT, `email` TEXT, `momentoCadastro` INTEGER," +
                    " `telefoneCelular` TEXT)");

            // Copiar dados da tabela antiga para a nova
            database.execSQL("INSERT INTO Aluno_novo (id, nome, telefone_fixo, email, momentoCadastro) " + "SELECT id, nome, telefone, email, momentoCadastro FROM Aluno");

            database.execSQL("DROP TABLE Aluno"); // Remove tabela antiga
            database.execSQL("ALTER TABLE Aluno_novo RENAME TO Aluno");  // Renomear a tabela nova com o nome da tabela antiga
        }
    };

    private static final Migration MIGRATION_5_6 = new Migration(5, 6){
        @Override
        public void migrate(@NonNull SupportSQLiteDatabase database){
            database.execSQL("CREATE TABLE IF NOT EXISTS `Aluno_novo` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `nome` TEXT, `email` TEXT, `momentoCadastro` INTEGER)");

            // Copiar dados da tabela antiga para a nova
            database.execSQL("INSERT INTO Aluno_novo (id, nome, email, momentoCadastro) " + "SELECT id, nome, email, momentoCadastro FROM Aluno");
            database.execSQL("CREATE TABLE IF NOT EXISTS `Telefone` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `numero` TEXT, `tipo` TEXT, `alunoId` INTEGER NOT NULL)");

            database.execSQL("INSERT INTO Telefone (numero, alunoId) " + "SELECT telefoneFixo, id FROM Aluno");

            database.execSQL("UPDATE Telefone SET tipo = ?", new TipoTelefone[] {FIXO});

            database.execSQL("DROP TABLE Aluno"); // Remove tabela antiga
            database.execSQL("ALTER TABLE Aluno_novo RENAME TO Aluno");  // Renomear a tabela nova com o nome da tabela antiga
        }
    };

    public static final Migration[] TODAS_MIGRATIONS = {MIGRATION_1_2, MIGRATION_2_3, MIGRATION_3_4, MIGRATION_4_5, MIGRATION_5_6};
}
1 resposta
solução!

Ja resolve o problema tive que deletar app no emulador.