Create a SQLite database for Sunshine
github: , ,
- Create a WeatherContract, in the class to create an inner class called WeatherEntry class, which implements BaseColumns, which implate, that defines the table contents of the weather table.
- Create a DBHelper extends SQLiteOpenHelper and implement with onCreate and onUpgrade.
- Prevent invalid inserts into the Weather DB. To Change each column’s type declaration to append NOT NULL, this will guarantee that every column in the database has a value, and hence won’t accept an insert statement that does not contain data for all the columns in the table!
- Make sure you increment the database version from 1 to 2 since we have now changed the database schema.
- To resolve conflicts, that is to make sure no duplicate dates exist in the database. To do so, add a UNIQUE constraint on the date column to replace on conflict, this will replace an old record with a new record if the date is the same but the remaining columns are different.
- Again, don’t forget to increment the database version from 2 to 3 now since we’ve changed it again.
TODO (1) Add a UNIQUE constraint on the date column to replace on conflict
* To ensure this table can only contain one weather entry per date, we declare
* the date column to be unique. We also specify "ON CONFLICT REPLACE". This tells
* SQLite that if we have a weather entry for a certain date and we attempt to
* insert another weather entry with that date, we replace the old weather entry.
" UNIQUE (" + WeatherEntry.COLUMN_DATE + ") ON CONFLICT REPLACE);";