美文网首页
Room增加数据表迁移小结

Room增加数据表迁移小结

作者: SearchSunny | 来源:发表于2020-06-28 17:07 被阅读0次

Room增加数据表迁移小结

  • Room使用注解方式增加数据表,进行迁移示例

    • 1 使用@Entity注解增加实体类,示例:

      
      @Entity(tableName = "notice")
      
      data class NoticeBean(
      
        @PrimaryKey(autoGenerate = true)var id: Int = 0,
      
        @ColumnInfo(name = "orderId")var orderId: Int = 0,
      
        @ColumnInfo(name = "title")var title: String? =""
      
      )
      
      
    • 2 在数据库持有者AppDatabase中增加创建的实体类,并更改version = 3(我原来version = 2),示例:

      
        @Database(entities = arrayOf(GrabOrderBean::class,NoticeBean::class),version = 3)
      
        abstract class AppDatabase : RoomDatabase() {}
      
      
    • 3 增加Migration并addMigrations,示例:

      
          val MIGRATION_2_3 =object : Migration(2,3) {
      
          override fun migrate(database: SupportSQLiteDatabase) {
      
          database.execSQL("CREATE TABLE IF NOT EXISTS notice (orderId INTEGER NOT NULL, title TEXT, " +
      
          "id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL)")
      
          }
      
        }
      
          private fun buildDatabase(context: Context) = Room.databaseBuilder(context.applicationContext,
      
          AppDatabase::class.java,"test.db")
      
          .allowMainThreadQueries()
      
          .addMigrations(MIGRATION_1_2,MIGRATION_2_3)
      
          .build()
      
      
    • 4 注意事项

        在定义实体类时orderId 有默认值,所以在执行execSQL时需使用orderId INTEGER NOT NULL,否则在运行时有可能会报异常。

相关文章

  • Room增加数据表迁移小结

    Room增加数据表迁移小结 Room使用注解方式增加数据表,进行迁移示例1 使用@Entity注解增加实体类...

  • Laravel 数据库操作

    增加数据表字段 遵循 add_culum_to_table 命名规范 --table选项指定对应的数据表 运行迁移...

  • Room数据库迁移记录

    记录一下Room数据库迁移过程中遇到的问题。要迁移Room数据库,只要需要实现androidx.room.migr...

  • 数据表迁移

    Laravel安装方法大的来分可以分为利用Composer安装和一键安装包安装。先来说一下最简单的安装方式,利用一...

  • 数据表空空间和临时表空间位置迁移

    --数据表空间迁移 1、将需要迁移的表空间置为offline状态 alter tablespace DJ_DATA...

  • 1—flyway命令概述

    1、Migrate迁移 将模式迁移到最新版本。如果Flyway不存在,则会自动创建元数据表。 迁移是Flyway工...

  • Laravel中常用的命令和方法(一)

    1.创建数据表迁移文件 2.在创建的迁移文件中设置表属性,字段等。 3.创建数据表 4.创建控制器 这条命令会在a...

  • Room 中的数据库自动迁移功能

    自 2.4.0-alpha01 版本开始,Room 库里新加入了自动迁移的功能,这让数据库迁移的实现变得更简单。以...

  • laravel数据库migrate后修改数据表字段

    在laravel中执行php artisan migrate后,生成了数据迁移文件后数据表,结果需要修改数据表的字...

  • Alembic的AutoGenerate与SQLite

    Alembic 是用来完成 SQLalchemy 数据表迁移的工具,同时也提供了自动生成迁移的选项来简化工作。不过...

网友评论

      本文标题:Room增加数据表迁移小结

      本文链接:https://www.haomeiwen.com/subject/dlmwfktx.html