database - 将字段添加到 App Engine 托管的数据库

标签 database web-services google-app-engine datastore gql

我目前正在开发一个使用 Google App Engine 托管的网络服务的移动应用程序。

但是我遇到了一个问题。我只想在我的数据库表中添加一个字段。 App Engine 不使用经典的 SQL 语法,而是使用 GQL。所以我不能使用 ALTER TABLE 语句。我如何使用 GQL 执行此操作?我在网上寻找解决方案,但没有太多帮助。

public MyEntity() {
}

@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Key idStation;
private String name;
private double longitude;
private double latitude;
private java.util.Date dateRefresh = new Date(); //the field i want to add in DB

所以,现在当我创建一个“MyEntity”对象时,它应该将“dateRefresh”字段添加到数据库中......我像这样创建我的对象:

MyEntity station = new MyEntity();
station.setName("test");
station.setLatitude(0);
station.setLongitude(0);
station.setDateRefresh(new Date("01/01/1980"));

DaoFactory.getStationDao().addStation(station);

添加站方法:

@Override
public MyEntity addStation(MyEntity station) {
    EntityManager em = PersistenceManager.getEntityManagerFactory().createEntityManager();
    try {           
        em.getTransaction().begin();
        em.persist(station);
        em.getTransaction().commit();
    } finally {
        if(em.getTransaction().isActive()) em.getTransaction().rollback();
        em.close();
    }
    return station;
}

字段“dateRefresh”从未创建到我的数据库中...

有人可以帮助我吗?

提前致谢

最佳答案

只需向您的数据结构添加另一个字段,也许提供一个 default 子句,仅此而已。例如,如果您有一个 UserAccount:

class UserAccount(db.Model):
    user = db.UserProperty()
    user_id = db.StringProperty()

您可以轻松添加:

class UserAccount(db.Model):
    user = db.UserProperty()
    user_id = db.StringProperty()
    extra_info = db.IntegerProperty(default=0)
    timezone = db.StringProperty(default="UTC")

然后就放手吧。

关于database - 将字段添加到 App Engine 托管的数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13585143/

相关文章:

asp.net - 如何使用 Entity Framework Code-First 执行 CRUD?

database - 如何从 SQLite 表中检索最后一个自动增量 ID?

mysql - 为什么我无法为此列分配外键?

java - NoSuchMethodError Request.setTag

python - 我无法在 Ubuntu 上初始化 Google Cloud SDK

mysql - mysql数据库规范化

web-services - RPC/literal 与 RPC/在 Java WebService 消费者中编码

c# - 改进解析解决方案

python - 如何根据 ReferenceProperty 的属性查询记录? (应用引擎上的 Django)

python - 使包含 HTML 的表单输入无效