我刚刚升级到SDK 1.7.7,我的应用程序无法再访问本地数据存储。我用Google搜索了一下,发现升级SDK时通常会发生这种情况。
我似乎无法找到任何可以保留现有数据的解决方案。我在我的数据存储区中设置了大量的测试数据,我不想重新创建。有没有办法将本地数据存储区中的数据从一个SDK版本转换/迁移到另一个SDK版本?
答案 0 :(得分:1)
我使用的步骤是:
1)建立一个remote_api连接https://developers.google.com/appengine/articles/remote_api
类似
static RemoteApiOptions options;
options = new RemoteApiOptions().server("localhost", 8888).credentials("", ""); // password doesn't matter
RemoteApiInstaller installer = new RemoteApiInstaller();
installer.install(options);
2)获取我的数据(这对我来说是Objectify,但它通常是你通常的做法)
UserDAO udao = new UserDAO(false);
Query<UserOFY> qu = udao.ofy().query(UserOFY.class);
3)将我的数据保存到硬盘
类似
FileOutputStream fileOut = new FileOutputStream(LOCAL_AE_BACKUPS_USER + "/" + USERS_FROM_LOCAL_BACKUP + "_" + u.getNickName());
ObjectOutputStream out = new ObjectOutputStream(fileOut);
out.writeObject(u);
out.close();
然后我在升级版本后反过来。
1)读取我硬盘上的持久数据
2)建立与本地数据存储区的连接
3)将数据持久保存到新版本的本地数据存储区