обновить таблицу базы данных в новой версии без потери данных старой версии в Android Studio - PullRequest
0 голосов
/ 30 мая 2018

У меня есть база данных, которую я построил в SQLite, и она отлично работает.Я хотел обновить базу данных и добавить новый столбец.

Когда я нажимаю RUN, они дают мне следующее:

Photo

Это мойкод для обновления базы данных, но они не работают без удаления старой версии приложения.

static class DBinfo extends SQLiteOpenHelper{

    private static final String dataBase_Name = "dbase";
    private static final String tableName = "mytable";
    private static final int dataBase_Version = 2;
    private static final String ID = "id";
    private static final String name = "name";
    private static final String nrx = "nrx";
    private static final String dane = "dane";
    private static final String mang = "mang";
    private static final String sal = "sal";
    private static final String roj = "roj";
    private static final String DROP_TABLE = "DROP TABLE IF EXISTS "+tableName;
    private static final String CREATE_TABLE = "CREATE TABLE "+tableName+
            "("+ID+" INTEGER PRIMARY KEY AUTOINCREMENT, "+name+" VARCHAR(255), "+nrx+" VARCHAR(255), "+dane+" VARCHAR(255), "+mang+" VARCHAR(255), "+sal+" VARCHAR(255),"+roj+" VARCHAR(255));";
    private Context context;


    public DBinfo(Context context) {
        super(context, dataBase_Name, null, dataBase_Version);
        this.context = context;
    }

    @Override
    public void onCreate(SQLiteDatabase db) {

        try{
            db.execSQL(CREATE_TABLE);
           // Toast.makeText(context,"table created",Toast.LENGTH_LONG).show();
        }catch (SQLException e){
         //   Toast.makeText(context,"due to: "+e,Toast.LENGTH_LONG).show();
        }

    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

        if (newVersion > oldVersion){
             db.execSQL("ALTER TABLE " +tableName+ " ADD COLUMN " +roj+ " TEXT");
        }
    }
 }

Метод OnUpgrade код не может работать, все время они дают мне первое фото.

Я слишком долго искал в интернете, но не решил.

1 Ответ

0 голосов
/ 30 мая 2018

Это сообщение не имеет ничего общего с вашей базой данных или изменениями в ней.Это означает, что вы пытаетесь установить APK с тем же пакетом, что и существующий APK, но с другой подписью.Ваше новое приложение даже не устанавливается.

Я не могу сказать, почему ваша подпись отличается, но подумайте, какие изменения вы могли внести в свою систему сборки или в сертификат, который вы используете для подписи ваших сборок.

Вы пытаетесь установить APK с подписью отладки поверх APK с подписью релиза?

...