Banco de dados da API QML do U1Db na atualização do Aplicativo

0

Eu fiz um aplicativo no QML que usa o Api qml U1Db (sdk 15.04.5). O aplicativo cria um banco de dados para salvar seus dados. O aplicativo já está carregado na loja do Ubuntu e disponível para os usuários.

O banco de dados é criado com:

U1db.Database {
      id: mypeopleDb
      path: Qt.resolvedUrl("MyPeople_db");
}

O que acontecerá no banco de dados existente quando eu fizer o upload de uma nova versão do aplicativo para a loja do Ubuntu e os usuários atualizarão o aplicativo antigo? O banco de dados antigo será perdido? sobrescrito? reutilizado?

Qual é a melhor solução para gerenciar essa situação?

Obrigado

    
por userFulvio999 20.07.2016 / 14:38

1 resposta

0

Para ter uma resposta certa na minha pergunta, tentei usar meu aplicativo:

1) Eu carreguei para a loja do Ubuntu a nova versão do aplicativo

2) Atualizei a versão antiga do aplicativo (já instalada no meu Tablet) com a nova (usando os recursos de atualização do ubuntu do tablet)

Conclusão:

o antigo banco de dados criado pela versão antiga do aplicativo não foi reutilizado pelo novo aplicativo: foi criada uma nova em branco (nenhuma modificação foi feita na estrutura do banco de dados).

Eu verifiquei que o banco de dados antigo NÃO foi perdido (é mantido no sistema de arquivos). Os bancos de dados criados com a API QML do U1Db são colocados em uma pasta nesse caminho:

~ phablet / .local / share // file: /opt/click.ubuntu.com/ "applicationName" / "version" / "NameApplication" /

onde: "applicationName" é o valor inserido no campo 'applicationName' dentro de Main.qml do código-fonte

"version" é a versão da aplicação (por exemplo: 1.1)

"NameApplication" é o nome do aplicativo

Para que o banco de dados da versão antiga do App 1.0 esteja dentro:

~ phablet / .loca / share / "applicationName" /file:/opt/click.ubuntu.com/ "applicationName" /1.0/ "NameApplication" /

E o da nova versão 1.1 está dentro:

~ phablet / .loca / share / "applicationName" /file:/opt/click.ubuntu.com/ "applicationName" /1.1/ "NameApplication" /

Para usar o banco de dados antigo é necessário copiar o arquivo de banco de dados da pasta antiga para a nova, sobrescrevendo a outra. Para fazer isso é possível usar o aplicativo Terminal ou com o Gerenciador de Arquivos do Tablet (depois de ativar a opção para mostrar as pastas ocultas no menu Gerenciador de arquivos (. Local é uma pasta oculta na casa)).

Eu verifiquei que criar o banco de dados sem QT.resolveurl ("..."):

U1db.Database {
        id: mypeopleDb1_0 
        path: "MyPeople_db";
}

o arquivo do banco de dados será colocado na pasta:

.local / share / "applicationName" sem nenhuma referência no número de versão do aplicativo.

Para que eu ache que a solução correta NÃO é usar QT.resolvedUrl () para evitar problemas no caso de atualizações de aplicativos.

Então, a nova pergunta é: como é possível criar e exportar / importar conteúdo de um arquivo DB? Parece que usar a API QML do U1DB não é possível ...

    
por userFulvio999 21.07.2016 / 19:01