SDK升级后的Google App Engine本地数据存储区

时间:2013-04-10 12:38:13

标签: google-app-engine google-cloud-datastore

我刚刚升级到SDK 1.7.7,我的应用程序无法再访问本地数据存储。我用Google搜索了一下,发现升级SDK时通常会发生这种情况。

我似乎无法找到任何可以保留现有数据的解决方案。我在我的数据存储区中设置了大量的测试数据,我不想重新创建。有没有办法将本地数据存储区中的数据从一个SDK版本转换/迁移到另一个SDK版本?

1 个答案:

答案 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)将数据持久保存到新版本的本地数据存储区