đ ️ Migration Table – āϏāĻšāĻ āĻাāώাā§ āĻŦ্āϝাāĻ্āϝা
đ ️ Migration Table – āϏāĻšāĻ āĻাāώাā§ āĻŦ্āϝাāĻ্āϝা
Migration Table āĻŽাāύে āĻšāϞো āĻĄাāĻাāĻŦেāϏেāϰ āĻāĻĒāĻĄেāĻ āĻāϰা! đ¤
āϧāϰুāύ, āĻāĻĒāύি āĻāĻāĻা Android āĻ
্āϝাāĻĒ āĻŦাāύিā§েāĻেāύ, āϝেāĻাāύে āĻāĻāĻা User Table āĻāĻে।
đ āĻĒ্āϰāĻĨāĻŽে User Table āĻĻেāĻāϤে āĻāĻŽāύ āĻিāϞঃ
| ID | Name | |
|---|---|---|
| 1 | Alex | alex@email.com |
| 2 | Bob | bob@email.com |
āĻāĻāύ, āĻāĻĒāύি āĻ িāĻ āĻāϰāϞেāύ Phone Number āĻĢিāϞ্āĻĄ āϝোāĻ āĻāϰāĻŦেāύ!
āĻিāύ্āϤু āϏāĻŽāϏ্āϝা āĻšāϞো— āĻĄাāĻাāĻŦেāϏ āϤো āĻāĻেāĻ āĻŦাāύাāύো! āĻāĻāύ āĻীāĻাāĻŦে āύāϤুāύ Phone Number āϝোāĻ āĻāϰāĻŦেāύ, āĻāĻেāϰ āĻĄাāĻা āĻŽুāĻেāĻ āĻĢেāϞāϤে āĻাāύ āύা? đ¤¯
✅ āϏāĻŽাāϧাāύ: Migration Table! đ
đ Migration Table āĻী?
Migration Table āĻšāϞো āĻĄাāĻাāĻŦেāϏেāϰ āϏ্āĻ্āϰাāĻāĻাāϰ āĻĒāϰিāĻŦāϰ্āϤāύ āĻāϰাāϰ āĻāĻāĻা āĻĒāĻĻ্āϧāϤি, āϝেāĻাāύে āĻāĻেāϰ āĻĄাāĻা āĻŽুāĻে āύা āĻĢেāϞে āύāϤুāύ āĻĢিāĻাāϰ āϝোāĻ āĻāϰা āĻšā§।
✔ āĻĢিāϞ্āĻĄ (Column) āϝোāĻ āĻāϰা āĻŦা āĻŽুāĻা
✔ āύāϤুāύ āĻেāĻŦিāϞ āĻŦাāύাāύো
✔ āĻোāύো āĻেāĻŦিāϞেāϰ āύাāĻŽ āĻĒāϰিāĻŦāϰ্āϤāύ āĻāϰা
✔ āĻĄাāĻাāϰ āĻাāĻāĻĒ āĻĒāϰিāĻŦāϰ্āϤāύ āĻāϰা
đ āĻŦাāϏ্āϤāĻŦ āĻāĻĻাāĻšāϰāĻŖ (Room Database + Kotlin)
āϧāϰুāύ, āĻāĻŽāϰা Room Database āĻŦ্āϝāĻŦāĻšাāϰ āĻāϰāĻি, āĻāĻŦং āĻāĻŽাāĻĻেāϰ User Table āĻিāϞ āĻāĻāϰāĻāĻŽঃ
@Entity(tableName = "users")
data class User(
@PrimaryKey(autoGenerate = true) val id: Int,
val name: String,
val email: String
)
āĻāĻāύ āĻāĻŽāϰা Phone Number āϝুāĻ্āϤ āĻāϰāϤে āĻাāĻ। āĻāĻāύ্āϝ Migration Table āĻŦ্āϝāĻŦāĻšাāϰ āĻāϰāĻŦো।
đ ️ Step 1: āύāϤুāύ Version āϤৈāϰি āĻāϰুāύ
Room Database-āĻāϰ āĻাāϰ্āϏāύ āĻāĻĒāĻ্āϰেāĻĄ āĻāϰāϤে āĻšāĻŦে—
@Database(entities = [User::class], version = 2)
abstract class AppDatabase : RoomDatabase() {
abstract fun userDao(): UserDao
}
đ ️ Step 2: Migration Code āϞিāĻুāύ
val MIGRATION_1_2 = object : Migration(1, 2) {
override fun migrate(database: SupportSQLiteDatabase) {
database.execSQL("ALTER TABLE users ADD COLUMN phone_number TEXT")
}
}
āĻāĻাāύে āĻāĻŽāϰা ALTER TABLE āĻĻিā§ে Phone Number āĻāϞাāĻŽ āϝুāĻ্āϤ āĻāϰেāĻি।
đ ️ Step 3: Migration Enable āĻāϰুāύ
val db = Room.databaseBuilder(
context,
AppDatabase::class.java, "my_database"
)
.addMigrations(MIGRATION_1_2)
.build()
✅ āĻŦ্āϝāϏ! āĻāĻেāϰ āĻĄাāĻা āύা āĻšাāϰিā§েāĻ āύāϤুāύ āĻĢিāϞ্āĻĄ āϝোāĻ āĻšā§ে āĻেāϞ! đ
đ āĻāĻāύ Migration āĻĒ্āϰā§োāĻāύ?
- Table-āĻ āύāϤুāύ Column āϝোāĻ āĻāϰāϞে
- Column-āĻāϰ āĻĄাāĻা āĻাāĻāĻĒ āĻĒāϰিāĻŦāϰ্āϤāύ āĻāϰāϞে
- āύāϤুāύ Table āϝোāĻ āĻāϰāϞে
- āĻোāύো āĻĒুāϰāύো Table āĻĄিāϞিāĻ āĻāϰāϞে
đ āϏুāĻŦিāϧা (Why Use Migration Table?)
✅ āĻĄাāĻা āĻšাāϰাāύোāϰ āĻā§ āύেāĻ!
✅ āĻĒুāϰāύো āĻ
্āϝাāĻĒ āĻāĻĒāĻĄেāĻ āĻāϰāϞেāĻ āĻোāύো āϏāĻŽāϏ্āϝা āĻšāĻŦে āύা!
✅ Production āĻ
্āϝাāĻĒে āϏāĻšāĻে āĻĒāϰিāĻŦāϰ্āϤāύ āĻāύা āϝাā§!
đ āϏংāĻ্āώেāĻĒে: Migration Table āĻāĻŽāύ āĻāĻāĻা āĻেāĻāύিāĻ, āϝা āĻĄাāĻাāĻŦেāϏāĻে āύāϤুāύāĻাāĻŦে āĻāĻĒāĻĄেāĻ āĻāϰāϤে āϏাāĻšাāϝ্āϝ āĻāϰে— āĻĒুāϰāύো āĻĄাāĻা āĻšাāϰাāύো āĻাā§াāĻ! đ
Comments
Post a Comment