如何借助迁移来更改 Floor 数据库中的表列?

问题描述 投票:0回答:1

我想借助更改数据库版本并运行迁移来更新 Floor 数据库中的表列。 例如,我想将 A 列更改为可为空的列! 我怎样才能实现这个目标? 有人可以提供示例代码吗?

database flutter migration sqflite floor
1个回答
0
投票

您可以像这样创建迁移:


//Step 1 - Update the version to (ex: from 1 to 2) inside the database annotation
@Database(version: 1, entities: [Person, Task])
abstract class AppDatabase extends FloorDatabase {

//Step 2 - create the migration
final migration1to2 = Migration(1, 2, (database) async {
  await database.execute('ALTER TABLE person ADD COLUMN nickname TEXT');
});

//Step 3 - then add it to the code that initialize the DB
final database = await $FloorAppDatabase
    .databaseBuilder('app_database.db')
    .addMigrations([migration1to2])
    .build();

如何在此处执行此操作的完整示例:楼层迁移

至于实际的 SQL 将其从非空更改为可为空,请检查此答案修改 Sqlite 表列 NOT NULL 为 NULL

© www.soinside.com 2019 - 2024. All rights reserved.