Room 不会更新现有的预定义数据库
Room does not update exsisting predefined database
我有一个简单的 table:
CREATE TABLE "Driver" (
"id" INTEGER NOT NULL,
"firstName" TEXT NOT NULL,
"lastName" TEXT NOT NULL,
"driverName" TEXT NOT NULL UNIQUE,
"birthDate" INTEGER,
"drivingLicNum" TEXT,
"drivingLicExpDate" INTEGER,
"issuingAuthority" TEXT,
"licCategory" TEXT,
"isActive" INTEGER NOT NULL DEFAULT 1 CHECK("isActive" IN (0, 1)),
"profilePic" TEXT,
PRIMARY KEY("id" AUTOINCREMENT)
);
我创建数据库的代码:
Room.databaseBuilder(context, VehicleexDatabase.class, "myprefdefdb.db").fallbackToDestructiveMigration()
.createFromAsset("databases/myprefdefdb.db").build();
问题是我有“drivingLicNum”的唯一列,但是因为我认为它是不必要的,所以我决定从我的预定义数据库中删除该列,卸载应用程序,并使用新的预定义数据库启动新应用程序。
但是,即使我删除了 UNIQUE 语句,我仍然收到“drivingLicNum”列存在 UNIQUE CONSTRAINT 的问题。我错过了什么吗?
发现问题:
我忘记删除实体 class.
中的 UNIQUE 索引
我有一个简单的 table:
CREATE TABLE "Driver" (
"id" INTEGER NOT NULL,
"firstName" TEXT NOT NULL,
"lastName" TEXT NOT NULL,
"driverName" TEXT NOT NULL UNIQUE,
"birthDate" INTEGER,
"drivingLicNum" TEXT,
"drivingLicExpDate" INTEGER,
"issuingAuthority" TEXT,
"licCategory" TEXT,
"isActive" INTEGER NOT NULL DEFAULT 1 CHECK("isActive" IN (0, 1)),
"profilePic" TEXT,
PRIMARY KEY("id" AUTOINCREMENT)
);
我创建数据库的代码:
Room.databaseBuilder(context, VehicleexDatabase.class, "myprefdefdb.db").fallbackToDestructiveMigration()
.createFromAsset("databases/myprefdefdb.db").build();
问题是我有“drivingLicNum”的唯一列,但是因为我认为它是不必要的,所以我决定从我的预定义数据库中删除该列,卸载应用程序,并使用新的预定义数据库启动新应用程序。
但是,即使我删除了 UNIQUE 语句,我仍然收到“drivingLicNum”列存在 UNIQUE CONSTRAINT 的问题。我错过了什么吗?
发现问题: 我忘记删除实体 class.
中的 UNIQUE 索引