GreenDao использует существующую базу данных вместо создания одной

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

До сих пор я создавал свою базу данных с помощью зеленого дао. Теперь я хотел бы иметь несколько баз данных внутри активов и просто открыть ту, которая мне нужна, и управлять ею с помощью зеленого дао.

Как я могу это сделать?

Это мой метод создания базы данных:

public static DaoMaster getDaoMaster(Context context)
{
    if(daoMaster == null)
    {
        OpenHelper helper = new OpenHelper(context, "dbSlo", null) {
            @Override
            public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
            }

        };
        //DevOpenHelper helper = new DevOpenHelper(context, "tronpos-db", null);
        db = helper.getWritableDatabase();
        daoMaster = new DaoMaster(db);
    }

    return daoMaster;
}

Теперь вместо того, чтобы создавать один, я хочу открыть существующий (dbSlo, который у меня есть в активах), а затем нормально манипулировать им.


person Tadej Vengust    schedule 17.03.2015    source источник
comment
Я решил эту проблему, используя: stackoverflow.com/a/13170341/3959584   -  person Tadej Vengust    schedule 18.03.2015


Ответы (1)


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

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

person eduyayo    schedule 17.03.2015