Данные базы данных не обновляются в приложении - PullRequest
0 голосов
/ 25 марта 2019

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

В чем проблема?Я делаю изменения в базе данных.Я изменяю номер версии базы данных, но в приложении ничего не меняется.

class DatabaseHelper extends SQLiteOpenHelper {
    private static String DB_PATH; 
    private static String DB_NAME = "bd.db";
    private static final int SCHEMA = 28; //version
    static final String TABLE = "categories_second";
    private Context myContext;

    DatabaseHelper(Context context) {
        super(context, DB_NAME, null, SCHEMA);
        this.myContext = context;
        DB_PATH = context.getFilesDir().getPath() + DB_NAME;
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("CREATE TABLE "+TABLE+"(_id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE,name TEXT NOT NULL,items TEXT,categories INTEGER DEFAULT NULL,pictures TEXT)");
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
            db.execSQL("DROP TABLE IF EXISTS " + TABLE);
            onCreate(db);            
    }

    void create_db() {
        InputStream myInput = null;
        OutputStream myOutput = null;
        try {
            File file = new File(DB_PATH);
            if (!file.exists()) {
                this.getReadableDatabase();

                myInput = myContext.getAssets().open(DB_NAME);

                String outFileName = DB_PATH;
                myOutput = new FileOutputStream(outFileName);

                byte[] buffer = new byte[1024];
                int length;
                while ((length = myInput.read(buffer)) > 0) {
                    myOutput.write(buffer, 0, length);
                }

                myOutput.flush();
                myOutput.close();
                myInput.close();
            }
        } catch (IOException ex) {
            Log.d("DatabaseHelper", ex.getMessage());
        }
    }

    public SQLiteDatabase open() throws SQLException {
        return SQLiteDatabase.openDatabase(DB_PATH, null, SQLiteDatabase.OPEN_READWRITE);
    }
}

Заранее спасибо

1 Ответ

0 голосов
/ 25 марта 2019

Как вы используете DatabaseHelper?

У меня есть настройка simillar как вы - без create_db

Когда я меняю версию в Helper, мне также нужно изменить версию, когда я вызываю помощника

dbHandler = new ButtonDBHandler(this, null, null, 2);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...