Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
1
Help us understand the problem. What is going on with this article?
@Bluewind1997

Roomのcolumn追加方法

はじめに

覚書程度なので注意。
わかりづらいと思う。
後これがあってるかどうかもわかんない…。

変更箇所

  • DBのVersion管理してるところ(AppDataBase)
  • DBの呼び出し箇所(Activity,Fragment)
  • DBの中身書いてるところ(Interface)

AppDatabase

DBのVersionをあげる(今回の場合は 1 → 2)

AppdataBase.kt
@Database(entities = [DBのテブル(クラス)::class], version = 2) //この部分を2へ
abstract class AppDataBase : RoomDatabase() {
    //DAOとか書いてあるけども今回は省略
}

Activity,Fragment

呼び出し部分の前に変更させるSQL文を記述

Migration.kt
val MIGRATION_1_2 = object : Migration(1, 2) {
            override fun migrate(database: SupportSQLiteDatabase) {
                //カラム追加
                database.execSQL("ALTER TABLE [テーブル名] ADD [追加したいカラム名] [追加するカラムの型]")
            }
        }

呼び出し部分でMigrationを行う

Main.kt
     val dataBase =
            Room.databaseBuilder(activity.applicationContext, AppDataBase::class.java, "データベース名")
                .addMigrations(MIGRATION_1_2) //Migration
                .build()

Interface

追加したカラムのcolumnInfoを作る

InterFace.kt

@Entity
class Database {
    @PrimaryKey(autoGenerate = true)
    var userId: Int = 0

//// 追加部分
    @ColumnInfo(name = "追加したカラム名")
    var 変数名: [型]? = ""
}

終わりに

DBを壊さずにこれで一応カラム追加とかできる。

1
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Bluewind1997
Kotlin使ったアプリ開発とかしてる人 https://www.gensounosakura.work
asia-quest
DX実現を目指す企業と並走する「デジタルインテグレーター」です。 通常のシステムインテグレーションだけではなく、お客様のDXを共に考えるコンサルティングから、 DXに必要な様々なデジタルテクノロジーの専門チームを有し、お客様のゴールに向けてシステムの設計、開発、運用までを一貫して請け負います。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
1
Help us understand the problem. What is going on with this article?