Flutter - How to update the table structure in Sqf

2019-08-23 14:24发布

问题:

My app is in production and I want to manage user data when user updates the app without loss of their data, how can I achieve this with sqflite. Explicitly I want to add a column and delete another.

回答1:

You can probably add a column using raw sql, but sqlite (and thus sqflite) doesn't support dropping a column. For that you would need to do the following:

  • increase the database version number
  • in onUpgrade copy the old database columns to a temporary table
  • delete the original table
  • create a new table using the original table name but with the right schema
  • copy the data from the temp table
  • delete the temp table

Sorry, this isn't a full answer, but it is the direction I would go if I were in your situation.