Skip to content

Commit fedc26e

Browse files
committed
Added migration to new database
1 parent 1ac6254 commit fedc26e

5 files changed

Lines changed: 44 additions & 15 deletions

File tree

app/src/androidTest/java/org/schabi/newpipe/database/DatabaseMigrationTest.kt

Lines changed: 29 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,8 @@ class DatabaseMigrationTest {
3333
@get:Rule
3434
val testHelper = MigrationTestHelper(
3535
InstrumentationRegistry.getInstrumentation(),
36-
AppDatabase::class.java.canonicalName, FrameworkSQLiteOpenHelperFactory()
36+
AppDatabase::class.java.canonicalName,
37+
FrameworkSQLiteOpenHelperFactory()
3738
)
3839

3940
@Test
@@ -42,7 +43,8 @@ class DatabaseMigrationTest {
4243

4344
databaseInV2.run {
4445
insert(
45-
"streams", SQLiteDatabase.CONFLICT_FAIL,
46+
"streams",
47+
SQLiteDatabase.CONFLICT_FAIL,
4648
ContentValues().apply {
4749
put("service_id", DEFAULT_SERVICE_ID)
4850
put("url", DEFAULT_URL)
@@ -54,14 +56,16 @@ class DatabaseMigrationTest {
5456
}
5557
)
5658
insert(
57-
"streams", SQLiteDatabase.CONFLICT_FAIL,
59+
"streams",
60+
SQLiteDatabase.CONFLICT_FAIL,
5861
ContentValues().apply {
5962
put("service_id", DEFAULT_SECOND_SERVICE_ID)
6063
put("url", DEFAULT_SECOND_URL)
6164
}
6265
)
6366
insert(
64-
"streams", SQLiteDatabase.CONFLICT_FAIL,
67+
"streams",
68+
SQLiteDatabase.CONFLICT_FAIL,
6569
ContentValues().apply {
6670
put("service_id", DEFAULT_SERVICE_ID)
6771
}
@@ -70,18 +74,31 @@ class DatabaseMigrationTest {
7074
}
7175

7276
testHelper.runMigrationsAndValidate(
73-
AppDatabase.DATABASE_NAME, Migrations.DB_VER_3,
74-
true, Migrations.MIGRATION_2_3
77+
AppDatabase.DATABASE_NAME,
78+
Migrations.DB_VER_3,
79+
true,
80+
Migrations.MIGRATION_2_3
7581
)
7682

7783
testHelper.runMigrationsAndValidate(
78-
AppDatabase.DATABASE_NAME, Migrations.DB_VER_4,
79-
true, Migrations.MIGRATION_3_4
84+
AppDatabase.DATABASE_NAME,
85+
Migrations.DB_VER_4,
86+
true,
87+
Migrations.MIGRATION_3_4
8088
)
8189

8290
testHelper.runMigrationsAndValidate(
83-
AppDatabase.DATABASE_NAME, Migrations.DB_VER_5,
84-
true, Migrations.MIGRATION_4_5
91+
AppDatabase.DATABASE_NAME,
92+
Migrations.DB_VER_5,
93+
true,
94+
Migrations.MIGRATION_4_5
95+
)
96+
97+
testHelper.runMigrationsAndValidate(
98+
AppDatabase.DATABASE_NAME,
99+
Migrations.DB_VER_6,
100+
true,
101+
Migrations.MIGRATION_5_6
85102
)
86103

87104
val migratedDatabaseV3 = getMigratedDatabase()
@@ -121,7 +138,8 @@ class DatabaseMigrationTest {
121138
private fun getMigratedDatabase(): AppDatabase {
122139
val database: AppDatabase = Room.databaseBuilder(
123140
ApplicationProvider.getApplicationContext(),
124-
AppDatabase::class.java, AppDatabase.DATABASE_NAME
141+
AppDatabase::class.java,
142+
AppDatabase.DATABASE_NAME
125143
)
126144
.build()
127145
testHelper.closeWhenFinished(database)

app/src/main/java/org/schabi/newpipe/NewPipeDatabase.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import static org.schabi.newpipe.database.Migrations.MIGRATION_2_3;
66
import static org.schabi.newpipe.database.Migrations.MIGRATION_3_4;
77
import static org.schabi.newpipe.database.Migrations.MIGRATION_4_5;
8+
import static org.schabi.newpipe.database.Migrations.MIGRATION_5_6;
89

910
import android.content.Context;
1011
import android.database.Cursor;
@@ -24,7 +25,8 @@ private NewPipeDatabase() {
2425
private static AppDatabase getDatabase(final Context context) {
2526
return Room
2627
.databaseBuilder(context.getApplicationContext(), AppDatabase.class, DATABASE_NAME)
27-
.addMigrations(MIGRATION_1_2, MIGRATION_2_3, MIGRATION_3_4, MIGRATION_4_5)
28+
.addMigrations(MIGRATION_1_2, MIGRATION_2_3, MIGRATION_3_4, MIGRATION_4_5,
29+
MIGRATION_5_6)
2830
.build();
2931
}
3032

app/src/main/java/org/schabi/newpipe/database/AppDatabase.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package org.schabi.newpipe.database;
22

3-
import static org.schabi.newpipe.database.Migrations.DB_VER_5;
3+
import static org.schabi.newpipe.database.Migrations.DB_VER_6;
44

55
import androidx.room.Database;
66
import androidx.room.RoomDatabase;
@@ -38,7 +38,7 @@
3838
FeedEntity.class, FeedGroupEntity.class, FeedGroupSubscriptionEntity.class,
3939
FeedLastUpdatedEntity.class
4040
},
41-
version = DB_VER_5
41+
version = DB_VER_6
4242
)
4343
public abstract class AppDatabase extends RoomDatabase {
4444
public static final String DATABASE_NAME = "newpipe.db";

app/src/main/java/org/schabi/newpipe/database/Migrations.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ public final class Migrations {
2323
public static final int DB_VER_3 = 3;
2424
public static final int DB_VER_4 = 4;
2525
public static final int DB_VER_5 = 5;
26+
public static final int DB_VER_6 = 6;
2627

2728
private static final String TAG = Migrations.class.getName();
2829
public static final boolean DEBUG = MainActivity.DEBUG;
@@ -188,6 +189,14 @@ public void migrate(@NonNull final SupportSQLiteDatabase database) {
188189
}
189190
};
190191

192+
public static final Migration MIGRATION_5_6 = new Migration(DB_VER_5, DB_VER_6) {
193+
@Override
194+
public void migrate(@NonNull final SupportSQLiteDatabase database) {
195+
database.execSQL("ALTER TABLE `playlists` ADD COLUMN `is_thumbnail_permanent` "
196+
+ "INTEGER NOT NULL DEFAULT 0");
197+
}
198+
};
199+
191200
private Migrations() {
192201
}
193202
}

app/src/main/java/org/schabi/newpipe/database/playlist/model/PlaylistEntity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ public class PlaylistEntity {
1515
public static final String PLAYLIST_ID = "uid";
1616
public static final String PLAYLIST_NAME = "name";
1717
public static final String PLAYLIST_THUMBNAIL_URL = "thumbnail_url";
18-
public static final String PLAYLIST_THUMBNAIL_PERMANENT = "isThumbnailSet";
18+
public static final String PLAYLIST_THUMBNAIL_PERMANENT = "is_thumbnail_permanent";
1919

2020
@PrimaryKey(autoGenerate = true)
2121
@ColumnInfo(name = PLAYLIST_ID)

0 commit comments

Comments
 (0)