Is it neccessary to add migration if new table is added in Room database?











up vote
0
down vote

favorite












I have two tables,person is already existing(added column userid as
foreign key)



    @Entity(tableName = TABLE_NAME)
data class Person(
@PrimaryKey @ColumnInfo(name = CLIENT_ID) var id: Long,
@ColumnInfo(name = USER_ID)var userId : Int = 1) : Parcelable {}



this is the newly added class,which has foreign key of person
class(userid)



    @Entity(tableName = Profile.TABLE_NAME,
foreignKeys = [ForeignKey(entity= Person::class,
parentColumns = [(Person.USER_ID)],
childColumns = [(Profile.USER_ID)],
onDelete = ForeignKey.CASCADE)])
@Parcelize
data class Profile(@PrimaryKey(autoGenerate = true)
var userId: Int,
var name: String? = null):Parcelable{}



Here i have two tables in the DB.
Now,do i need to write migration code for creation of new table?










share|improve this question







New contributor




nithin krishna is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.




















  • refer this
    – Basi
    yesterday















up vote
0
down vote

favorite












I have two tables,person is already existing(added column userid as
foreign key)



    @Entity(tableName = TABLE_NAME)
data class Person(
@PrimaryKey @ColumnInfo(name = CLIENT_ID) var id: Long,
@ColumnInfo(name = USER_ID)var userId : Int = 1) : Parcelable {}



this is the newly added class,which has foreign key of person
class(userid)



    @Entity(tableName = Profile.TABLE_NAME,
foreignKeys = [ForeignKey(entity= Person::class,
parentColumns = [(Person.USER_ID)],
childColumns = [(Profile.USER_ID)],
onDelete = ForeignKey.CASCADE)])
@Parcelize
data class Profile(@PrimaryKey(autoGenerate = true)
var userId: Int,
var name: String? = null):Parcelable{}



Here i have two tables in the DB.
Now,do i need to write migration code for creation of new table?










share|improve this question







New contributor




nithin krishna is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.




















  • refer this
    – Basi
    yesterday













up vote
0
down vote

favorite









up vote
0
down vote

favorite











I have two tables,person is already existing(added column userid as
foreign key)



    @Entity(tableName = TABLE_NAME)
data class Person(
@PrimaryKey @ColumnInfo(name = CLIENT_ID) var id: Long,
@ColumnInfo(name = USER_ID)var userId : Int = 1) : Parcelable {}



this is the newly added class,which has foreign key of person
class(userid)



    @Entity(tableName = Profile.TABLE_NAME,
foreignKeys = [ForeignKey(entity= Person::class,
parentColumns = [(Person.USER_ID)],
childColumns = [(Profile.USER_ID)],
onDelete = ForeignKey.CASCADE)])
@Parcelize
data class Profile(@PrimaryKey(autoGenerate = true)
var userId: Int,
var name: String? = null):Parcelable{}



Here i have two tables in the DB.
Now,do i need to write migration code for creation of new table?










share|improve this question







New contributor




nithin krishna is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











I have two tables,person is already existing(added column userid as
foreign key)



    @Entity(tableName = TABLE_NAME)
data class Person(
@PrimaryKey @ColumnInfo(name = CLIENT_ID) var id: Long,
@ColumnInfo(name = USER_ID)var userId : Int = 1) : Parcelable {}



this is the newly added class,which has foreign key of person
class(userid)



    @Entity(tableName = Profile.TABLE_NAME,
foreignKeys = [ForeignKey(entity= Person::class,
parentColumns = [(Person.USER_ID)],
childColumns = [(Profile.USER_ID)],
onDelete = ForeignKey.CASCADE)])
@Parcelize
data class Profile(@PrimaryKey(autoGenerate = true)
var userId: Int,
var name: String? = null):Parcelable{}



Here i have two tables in the DB.
Now,do i need to write migration code for creation of new table?







android sql android-room






share|improve this question







New contributor




nithin krishna is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











share|improve this question







New contributor




nithin krishna is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









share|improve this question




share|improve this question






New contributor




nithin krishna is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









asked yesterday









nithin krishna

12




12




New contributor




nithin krishna is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





New contributor





nithin krishna is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.






nithin krishna is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.












  • refer this
    – Basi
    yesterday


















  • refer this
    – Basi
    yesterday
















refer this
– Basi
yesterday




refer this
– Basi
yesterday












1 Answer
1






active

oldest

votes

















up vote
0
down vote













If you want to migrate your data from the previous version to the new version
then




Yes. You have to write the migration code.




If you only want to migrate schema and not data.
then no need to write migration logic. Just add fallbackToDestructiveMigration() in Room builder.



Example:



Room.databaseBuilder(appContext, AppDatabase.class, AppDatabase.DATABASE_NAME)
.fallbackToDestructiveMigration()
.build();





share|improve this answer





















    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });






    nithin krishna is a new contributor. Be nice, and check out our Code of Conduct.










     

    draft saved


    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53371799%2fis-it-neccessary-to-add-migration-if-new-table-is-added-in-room-database%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes








    up vote
    0
    down vote













    If you want to migrate your data from the previous version to the new version
    then




    Yes. You have to write the migration code.




    If you only want to migrate schema and not data.
    then no need to write migration logic. Just add fallbackToDestructiveMigration() in Room builder.



    Example:



    Room.databaseBuilder(appContext, AppDatabase.class, AppDatabase.DATABASE_NAME)
    .fallbackToDestructiveMigration()
    .build();





    share|improve this answer

























      up vote
      0
      down vote













      If you want to migrate your data from the previous version to the new version
      then




      Yes. You have to write the migration code.




      If you only want to migrate schema and not data.
      then no need to write migration logic. Just add fallbackToDestructiveMigration() in Room builder.



      Example:



      Room.databaseBuilder(appContext, AppDatabase.class, AppDatabase.DATABASE_NAME)
      .fallbackToDestructiveMigration()
      .build();





      share|improve this answer























        up vote
        0
        down vote










        up vote
        0
        down vote









        If you want to migrate your data from the previous version to the new version
        then




        Yes. You have to write the migration code.




        If you only want to migrate schema and not data.
        then no need to write migration logic. Just add fallbackToDestructiveMigration() in Room builder.



        Example:



        Room.databaseBuilder(appContext, AppDatabase.class, AppDatabase.DATABASE_NAME)
        .fallbackToDestructiveMigration()
        .build();





        share|improve this answer












        If you want to migrate your data from the previous version to the new version
        then




        Yes. You have to write the migration code.




        If you only want to migrate schema and not data.
        then no need to write migration logic. Just add fallbackToDestructiveMigration() in Room builder.



        Example:



        Room.databaseBuilder(appContext, AppDatabase.class, AppDatabase.DATABASE_NAME)
        .fallbackToDestructiveMigration()
        .build();






        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered yesterday









        Milind Mevada

        1,325617




        1,325617






















            nithin krishna is a new contributor. Be nice, and check out our Code of Conduct.










             

            draft saved


            draft discarded


















            nithin krishna is a new contributor. Be nice, and check out our Code of Conduct.













            nithin krishna is a new contributor. Be nice, and check out our Code of Conduct.












            nithin krishna is a new contributor. Be nice, and check out our Code of Conduct.















             


            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53371799%2fis-it-neccessary-to-add-migration-if-new-table-is-added-in-room-database%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            Cypress Hill

            what are some tips for doing well in the interview? [on hold]

            How does a super-power salesman not get shut down for legal reasons?