From c659146d67ca732ff6c5a44c8474d32995cc0475 Mon Sep 17 00:00:00 2001 From: jacques Date: Thu, 23 Jun 2022 11:23:59 +0200 Subject: [PATCH] Change column name in schema using autoMigration --- .../2.json | 100 ++++++++++++++++++ .../databases/PrescriptionDatabase.java | 29 +++-- .../foucry/pilldroid/models/Prescription.java | 10 +- 3 files changed, 127 insertions(+), 12 deletions(-) create mode 100644 app/schemas/net.foucry.pilldroid.databases.PrescriptionDatabase/2.json diff --git a/app/schemas/net.foucry.pilldroid.databases.PrescriptionDatabase/2.json b/app/schemas/net.foucry.pilldroid.databases.PrescriptionDatabase/2.json new file mode 100644 index 0000000..d767b40 --- /dev/null +++ b/app/schemas/net.foucry.pilldroid.databases.PrescriptionDatabase/2.json @@ -0,0 +1,100 @@ +{ + "formatVersion": 1, + "database": { + "version": 2, + "identityHash": "5d25ce5aa04f81e6c61efbdabce94266", + "entities": [ + { + "tableName": "prescriptions", + "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`cis` TEXT NOT NULL, `cip13` TEXT, `name` TEXT, `administration_mode` TEXT, `presentation` TEXT, `stock` REAL, `take` REAL, `warning` INTEGER, `alert` INTEGER, `last_update` INTEGER, `label_group` TEXT, `generic_type` INTEGER, PRIMARY KEY(`cis`))", + "fields": [ + { + "fieldPath": "cis", + "columnName": "cis", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "cip13", + "columnName": "cip13", + "affinity": "TEXT", + "notNull": false + }, + { + "fieldPath": "name", + "columnName": "name", + "affinity": "TEXT", + "notNull": false + }, + { + "fieldPath": "administration_mode", + "columnName": "administration_mode", + "affinity": "TEXT", + "notNull": false + }, + { + "fieldPath": "presentation", + "columnName": "presentation", + "affinity": "TEXT", + "notNull": false + }, + { + "fieldPath": "stock", + "columnName": "stock", + "affinity": "REAL", + "notNull": false + }, + { + "fieldPath": "take", + "columnName": "take", + "affinity": "REAL", + "notNull": false + }, + { + "fieldPath": "warning", + "columnName": "warning", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "alert", + "columnName": "alert", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "last_update", + "columnName": "last_update", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "label_group", + "columnName": "label_group", + "affinity": "TEXT", + "notNull": false + }, + { + "fieldPath": "generic_type", + "columnName": "generic_type", + "affinity": "INTEGER", + "notNull": false + } + ], + "primaryKey": { + "columnNames": [ + "cis" + ], + "autoGenerate": false + }, + "indices": [], + "foreignKeys": [] + } + ], + "views": [], + "setupQueries": [ + "CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)", + "INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, '5d25ce5aa04f81e6c61efbdabce94266')" + ] + } +} \ No newline at end of file diff --git a/app/src/main/java/net/foucry/pilldroid/databases/PrescriptionDatabase.java b/app/src/main/java/net/foucry/pilldroid/databases/PrescriptionDatabase.java index e8a3387..2ee418c 100644 --- a/app/src/main/java/net/foucry/pilldroid/databases/PrescriptionDatabase.java +++ b/app/src/main/java/net/foucry/pilldroid/databases/PrescriptionDatabase.java @@ -4,8 +4,10 @@ import android.content.Context; import androidx.room.AutoMigration; import androidx.room.Database; +import androidx.room.RenameColumn; import androidx.room.Room; import androidx.room.RoomDatabase; +import androidx.room.migration.AutoMigrationSpec; import net.foucry.pilldroid.dao.PrescriptionsDAO; import net.foucry.pilldroid.models.Prescription; @@ -14,21 +16,34 @@ import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; @Database( - version = 1, - entities = {Prescription.class} + version = 2, + entities = {Prescription.class}, + autoMigrations = { + @AutoMigration( + from = 1, + to = 2, + spec = PrescriptionDatabase.generic_typeMigration.class + ) + } + ) public abstract class PrescriptionDatabase extends RoomDatabase { private static PrescriptionDatabase INSTANCE; + public abstract PrescriptionsDAO getPrescriptionsDAO(); + + @RenameColumn(tableName = "prescriptions", fromColumnName = "genetic_type", toColumnName = "generic_type") + static class generic_typeMigration implements AutoMigrationSpec { } + public static PrescriptionDatabase getInstanceDatabase(Context context) { if (INSTANCE == null) { INSTANCE = - Room - .databaseBuilder(context.getApplicationContext(), - PrescriptionDatabase.class, "prescriptions") - .allowMainThreadQueries() - .build(); + Room + .databaseBuilder(context.getApplicationContext(), + PrescriptionDatabase.class, "prescriptions") + .allowMainThreadQueries() + .build(); } return INSTANCE; } diff --git a/app/src/main/java/net/foucry/pilldroid/models/Prescription.java b/app/src/main/java/net/foucry/pilldroid/models/Prescription.java index 6e3edfc..709bad1 100644 --- a/app/src/main/java/net/foucry/pilldroid/models/Prescription.java +++ b/app/src/main/java/net/foucry/pilldroid/models/Prescription.java @@ -24,7 +24,7 @@ public class Prescription implements Serializable { private Integer alert; private Long last_update; private String label_group; - private Integer genetic_type; + private Integer generic_type; public void setCis(@NonNull String cis) { @@ -122,12 +122,12 @@ public class Prescription implements Serializable { this.label_group = label_group; } - public Integer getGenetic_type() { - return genetic_type; + public Integer getGeneric_type() { + return generic_type; } - public void setGenetic_type(Integer genetic_type) { - this.genetic_type = genetic_type; + public void setGeneric_type(Integer generic_type) { + this.generic_type = generic_type; } public Date getDateEndOfStock() { int numberDayOfTake;