Room数据库添加字段遇到的问题记录

Android Room 升级数据库-增加字段 如果没有提供足够的迁移来从当前版本移动到最新版本,Room 将清除数据库并重新创建。对于#1,因为仅仅更新了版本号升级,所以Room会把本地的数据库清除并创建,即本地数据库的数据将会丢失,这并不是推荐的操作。 阅读详情

Android 开发项目使用到了Room数据库。在业务不断完善的时候数据库都会发生变化。今天在给表增加列的时候遇到了一个问题。

Migration didn't properly handle xxx

我升级表的目的是为了给表增加一个布尔值

以下是出错的代码:

   从版本1迁移到版本2

在test_records表里面增加一列 is_tourists_data

val MIGRATION_1_2 = object : Migration(1, 2) {
    override fun migrate(database: SupportSQLiteDatabase) {
        database.execSQL("ALTER TABLE test_records ADD COLUMN is_tourists_data")
    }
}

运行后Android stuido 提示notNull不一致

最后修改代码

database.execSQL("ALTER TABLE test_records ADD COLUMN is_tourists_data INTEGER NOT NULL DEFAULT 0")

设置个默认值0(false)即可 NOT NULL DEFAULT 0

android 数据库升级,增加字段 android 数据库升级,增加字段,以后会更新升级增加建表 立即下载

相关推荐

图相似度模型(论文篇)

图相似度模型

weixin_43702653的博客 5748

Room 数据库迁移采坑记

a、采坑之新增表: 1、假设在表UserModel 实体里有一个int字段 id 是主键自增的,在migrate()方法中执行建表SQL语句时,id需要指定 NOT NULL,否则会报异常:java.lang.IllegalStateException: Migration didn't properly handle UserModel 。 2、新建表UserModel 实体时,可以含有bo...

sang_xb的专栏 3383

使用 Wireshark 进行计算机网络协议分析

文章目录实验前准备一、Wireshark抓包示例二、Wireshark实作1、数据链路层实作一 熟悉Ethernet帧结构实作二 了解子网内/外通信时的 MAC 地址实作三 掌握 ARP 解析过程2、网络层实作一 熟悉 IP 包结构实作二 IP 包的分段与重组实作三 考察 TTL 事件3、传输层实作一 熟悉 TCP 和 UDP 段结构实作二 分析 TCP 建立和释放连接4、应用层实作一 了解 DNS 解析实作二 了解 HTTP 的请求和应答 实验前准备 本部分实验用到的是抓包和协议分析软件——Wiresha

weixin_51087836的博客 8199

Android Room增删改查详解、报错的改正记录

Room 是 SQLite的封装 SQLite: 需要写帮助类、SQL语句、执行SQL语句、创建表 → 非常非常繁琐 Room(SQLite的封装): 面向注解开发 @Entity @Dao @Database → 方便通过在实体类上加注解@Entity,让实体类相当于一张表通过在Dao接口上加注解@Dao,就可以让dao轻松地完成增删改查创建一个类继承RoomDatabase,加注解@Database,轻松地建数据库和建表用Room完成如下增删改查功能 3 创建一个Dao接口,加注解@Dao

m0_45877477的博客 4060

IDEA中Maven工具栏与命令执行全攻略:高效开发必备技巧

IntelliJ IDEA 作为强大的 Java 开发工具,其 Maven 功能独具优势。Maven 工具栏位于工作区右侧,图标功能丰富,涵盖项目导入、源码处理、依赖操作等。执行 Maven 命令有多种途径,Run Anything 窗口可输入或选目标执行,上下文菜单能右键运行目标,还可创建运行配置,指定命令参数后运行,为开发者高效管理 Maven 项目、便捷执行命令提供有力支持。

2301_82300081的博客 2030

Python+Appium实现泛微OA自动打卡:5分钟搭建移动端自动化脚本

移动端自动化测试是软件测试与办公自动化领域的重要技术方向,其核心原理是通过程序模拟用户对手机应用界面的操作,实现重复性任务的自动执行。Appium作为主流的开源移动端自动化框架,基于WebDriver协议,支持跨平台且无需修改被测应用,为自动化脚本开发提供了标准化接口。在工程实践中,结合Python简洁的语法和丰富的生态,可以快速构建稳定可靠的自动化解决方案。这一技术组合的价值在于能够高效处理“重复性、低价值、高频率”的日常操作,例如考勤打卡、数据填报等办公场景,显著提升工作效率。本文以泛微OA Emobi

weixin_28836875的博客 390

Android Room数据库,使用Migration给数据库添加一个字段

1.数据表中增加某个字段。例如增加:bar_data2 package com.cdc.viewModel; import androidx.room.ColumnInfo; import androidx.room.Entity; import androidx.room.PrimaryKey; @Entity public class Word { //主键,自增 @PrimaryKey(autoGenerate = true) private int id; //不

weixin_42602900的博客 2460

scDeepCluster_pytorch代码解读与文章理解

论文:Clustering single-cell RNA-seq data with a。

qq_34179307的博客 915

mysql修改表结构(alter table),多列/多字段

--创建测试表 create table test( id int; );--正确写法是每列都add/change/drop,逗号隔开,'column'可有可无,add支持多列--添加多列 alter table test add (c1 char(1),c2 char(1)); --correct,add支持多列 alter table test add column (c1 char

苦笔的博客 9万+

abaqus 6.13安装(ubuntu 16.04LTS)

1。从iso将文件拷贝出来 2。chmod 777 -R ./* 给文件权限 3。sudo /home/xx/A/setup 4。安装licenseserver 5。拷贝lic,log文件 6。打开license sudo ./lmgrd -c path 7. 27011@xx or 27011@localhost ...

a1099313374的博客 1950

山东大学机器学习(实验一内容)——线性回归

1. 描述 第一个练习将为你提供线性回归练习。这些练习已经用Matlab进行了广泛的测试,但它们也应该在Octave中工作,它被称为“免费版的Matlab”。如果你使用的是Octave,那就是 一定要安装Image包(可在Windows中作为选项使用)安装程序,可从Octave-Forge获得Linux。 2.线性回归 回想一下,线性回归模型是 hθ(x)=θTx=∑j=0nθjxj h_{\th...

HachiLin的博客 4108

Room,数据库框架学习三(数据库的版本管理,数据库字段增加数据的迁移)

升级数据库: 1.首先要修改版本号 2.迁移数据 //.fallbackToDestructiveMigration() 不保留数据,迁移数据

Mrlove的博客 2255

手把手教你学GPU的KMD专栏--3.1 设备初始化流程深度解析

本文深入解析了KMD(内核模式驱动)设备初始化流程,这是GPU驱动开发最基础且关键的环节。初始化流程包括6个核心阶段:KMD模块加载、PCIe设备探测匹配、GPU硬件初始化、显存分配映射、中断系统配置和设备注册。每个阶段都有详细步骤解析,涉及关键数据结构和错误处理机制。文章还分析了常见问题(驱动加载失败、显存分配失败、中断配置失败)的解决方案,并指出未来趋势将向动态初始化、安全增强和AI优化方向发展。正确高效的初始化流程是确保GPU被操作系统安全使用的前提,也是后续内存管理、任务调度等功能的基础。

MHD0815的博客 262

Room数据库学习记录

Room数据库使用Room数据库简介:优点Room的三个主要组件Room的相关依赖使用Room数据库使用@Entity创建表使用@Dao,创建操作数据库的接口使用@Database,创建数据库使用:数据库升级1.简单粗暴式2.优雅友好式3.跳跃式升级 Room数据库 简介: Room是Google官方推出的Architecture Components中的一个持久性数据库,提供了基于SQLite的抽象层,可以在充分利用SQLite功能的前提下流畅的访问数据库。 Room是google官方开发的对象关

qq_52332769的博客 1880

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

【Android-Room数据库系列】—— Room 基础

Room 数据库基础Room 简介使用Room保存本地数据到数据库中Entity 实体DaoDatabase简单案例 Room 简介 Room 持久库提供了一个 SQLite 抽象层,让你访问数据库更加稳健,提升数据库性能。 该库帮助您在运行应用程序的设备上创建应用程序的数据缓存。这个缓存是你的应用程序唯一的真实来源,允许用户查看应用程序中关键信息的一致副本,而不管用户是否有Internet连接。 使用 Room 需要添加依赖: dependencies { def room_version = "2.2.

萌宅鹿的技术小屋 3561

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

使用 Room 将数据保存到本地数据库学习日志+demo

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Ma...

angranxueer的博客 1659

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

【Android】数据库Room的使用总结

本文简述了Android开发中Room数据库的应用,包括设置实体类、定义DAO接口、创建数据库类,并在Activity或ViewModel中通过协程进行数据库操作,以实现高效、安全的本地数据管理。

liupengcaho的博客 3394

Android Room Database 学习

Room数据库学习初衷概览配置定义data类定义UserDao定义抽象数据库项目build 自动生成文件使用定义数据实体定义对象之间关系使用DAOS数据库更新 初衷 由于接手的项目中,看到别人使用的是Android Jetpack下的Android Room数据库,由于以前也只是接触过GreenDao和自己写的sqlite数据库,所以就学习了一下,做一个笔记记录一下。这是我以前学习的greenda...

成长的烧年 2445

Android Debug Database终极指南:如何快速调试Room内存数据库

Android Debug Database是一款专为Android开发者打造的高效数据库调试工具,能够帮助开发者轻松查看和编辑SQLite数据库文件,显著提升调试效率。无论是查看数据库结构、执行SQL查询还是修改数据,它都能提供直观便捷的操作方式,让数据库调试不再复杂。 ### 为什么选择Android Debug Database? 在Android开发过程中,数据库调试常常是一件令人头疼

gitblog_00264的博客 473

Android JetPack组件之Room数据库的集成与详解

一、Room数据库是google官方提供的数据库,Room与其他@Query@Entity。

4892

Android Room 使用@Update 更新部分字段

在之前的Room版本中,如果在dao 中 使用@update 会更新关联的主键数据的那一行的所有数据 但是在androidx.room:room-*:2.2.0 之后,我们可以做到部分更新 官方解释如下 目标实体:DAO 注释@Insert、@Update和@Delete现在具有一个新属性targetEntity,可用于指定要采用 DAO 方法的目标表。这样一来,这些 DAO 方...

zhuomingd的专栏 2万+

【Android】使用Room数据库解决本地持久化

Android数据库的使用

2301_79344902的博客 1844

Android Room数据库使用

Room使用介绍 1.创建Database Database包含数据库的持有者。 作为一个数据库的管理类,必须用注解 @Database 标注,并且满足以下条件: 必须是一个抽象类,并且继承 RoomDatabase。 在 Database 的注解内,必须包含一个或者多个和数据库关联的实体类。 包含一个或多个有0个参数的抽象方法,这些方法返回与之关联实体的Dao对象。 2.创建Entity 代表数据库关联的一个表 3.创建Dao 包含可以访问数据的方法。 Room使用具体分解: 步骤1、

王温暖的博客 7136

【Android】Room数据库的使用

room数据库的使用

每天不是在写bug就是在写bug的路上 2995

Room的踩坑记录

一、建立实体类踩坑记录 1、实体类字段问题 由于我用的是kotlin建立的实体类,kotlin对于空指针的检查很严格,所以,对于一些可以为空的数据表字段需要在实体类属性后面加上 ? 表示可以为空,不能为空的字段就不加?,当然使用Java的时候,就没有这些问题了。 @Entity(tableName = "Test", indices = [Index( "TEST_ID", unique = true)]) data class Test( @ColumnInfo(name = "TEST_ID"

风洛伊曼的博客 2535

Jetpack Room 使用及原理解析

Room 是 Google 官方推出的数据库 **ORM 框架**。ORM:即 Object Relational Mapping,即对象关系映射,也就是将关系型数据库映射为面向对象的语言。使用 ORM 框架,我们就可以用面向对象的思想操作关系型数据库,不再需要编写 SQL 语句。 Room 是在 **SQLite** 的基础上提供了一个抽象层,以便在充分利用 SQLite 的强大功能的同时,能够更简便的访问数据库。

neuHenry 2910
上一篇: Android 状态栏常规操作(状态栏显示,状态栏颜色,沉浸式状态栏)
下一篇: Android 使用PorterDuff.Mode.XOR自定义透明遮罩
爱吃西瓜J
博客等级 码龄9年 6粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值