Android SQLite: Replace old database with a new one or use migration scripts
<p>I have an Android app that uses a SQLite database and <a href="http://www.activeandroid.com">Active Android</a> as ORM. On each app update I need to ship my database with new/updated data. This is what i've been doing</p>

<ol>
<li>I have a <strong>my_app.db</strong> database</li>
<li>I make modifications on the rows, tables, etc. of the <strong>my_app.db</strong></li>
<li>I save the modified <strong>my_app.db</strong> as <strong>my_app_v2.db</strong> ( and so on )</li>
<li>I replace the <strong>my_app.db</strong> file of the assets folder with the <strong>my_app_v2.db</strong> and set it as the default database</li>
<li>I compile and run the program using the newly created <strong>my_app_v2.db</strong></li>
</ol>

<p>So when the user gets the app, it will be using the <strong>my_app_v2.db</strong> with new contents.</p>

<p>I know that Active Android <a href="https://github.com/pardom/ActiveAndroid/wiki/Schema-migrations">supports migration scripts</a>, but on each database update I need to add/update about 2000+ records. So for each database update I would need a migration script with 2000+ insert/update statements, it means that for 3+ consecutive upgrades the app would have to execute about 6000+ statements.</p>

<p>I want to know if my approach of replace the whole database with a new one is a bad practice and the migrations scripts should be prefered.</p>