Извлечение базы данных Sqlite из Android дает пустую базу - PullRequest
0 голосов
/ 10 мая 2019

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

Проблема заключается в том, что когда я запускаю команды adb, полученный мной файл .db становится пустым, хотя у меня есть таблицы creatd и я добавил данные в эти таблицы в базе данных.

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

команда adb: adb exec-out run-as projectname cat databases/my.db > my.db

код создания базы данных:

if(!Sqlite.exists("my.db")){
        new Sqlite("my.db")
        .then(
            (db) => {
            //create table here
                db.execSQL("CREATE TABLE IF NOT EXISTS Times (Id INTEGER PRIMARY KEY AUTOINCREMENT, clockIn TEXT, clockOut TEXT)")
                .then(
                    () => {
                        console.log("succcess")
                        db.execSQL("INSERT INTO Times (clockIn, clockOut) VALUES (?, ?)", ["Nic", "Raboy"]).then(() => {
                            db.all("SELECT * FROM Times").then((rows) => {
                                console.log(rows)
                            })
                        })

                    }, 
                    (error) => { 
                        console.log('Error occurred creating table');
                    });
        },
            (error) => {
                console.log("Error creating Database");
            });
    }    

1 Ответ

1 голос
/ 10 мая 2019

Я разобрался, как решить эту проблему.На Android 9 вы должны включить файлы -wal и -shm при извлечении с использованием ADB.Затем, когда откроется файл .db, вы увидите базу данных в том виде, в каком вы ее создали, а не пустую базу данных.

Возможно, это не лучший способ сделать это, но он будет работать:

adb exec-out run-as projectname cat databases/my.db > my.db
adb exec-out run-as projectname cat databases/my.db-shm > my.db-shm
adb exec-out run-as projectname cat databases/my.db-wal > my.db-wal
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...