【发布时间】:2021-09-06 07:01:28
【问题描述】:
我在我的 android 项目中使用 Room 持久性库。我有一个数据库视图,我想在我的应用程序的新版本中添加一列。什么是正确的迁移代码?
database.execSQL("????")
PS:我想更改视图,而不是表格,我尝试了这个:
database.execSQL("ALTER TABLE table_name ADD COLUMN column_name data_type")
我收到此错误:无法向视图添加列(代码 1 SQLITE_ERROR)
更新:我的旧版观点:
@Data
@DatabaseView("SELECT site.name AS address, group_site.name AS groupName, group_site.member_id AS memberId " +
"FROM site, group_site " +
"INNER JOIN groupsite_join_site " +
"ON site.id = groupsite_join_site.site_id AND group_site.id = groupsite_join_site.group_site_id "
)
public class SiteDetail {
long memberId;
String address;
String groupName;
}
新版本:
@Data
@DatabaseView("SELECT site.id as id, site.name AS address, group_site.name AS groupName, group_site.member_id AS memberId " +
"FROM site, group_site " +
"INNER JOIN groupsite_join_site " +
"ON site.id = groupsite_join_site.site_id AND group_site.id = groupsite_join_site.group_site_id "
)
public class SiteDetail {
long id;
long memberId;
String address;
String groupName;
}
可以看出,我想将 id 列添加到我的数据库视图中。
【问题讨论】:
标签: android migration android-room