rowid,repo,release,date,body_markdown,published_at,topics 140912432,https://github.com/simonw/sqlite-utils,https://github.com/simonw/sqlite-utils/releases/tag/2.0,2019-12-30,"This release changes the behaviour of `upsert`. It’s a breaking change, hence 2.0. The `upsert` command-line utility and the `.upsert()` and `.upsert_all()` Python API methods have had their behaviour altered. They used to completely replace the affected records: now, they update the specified values on existing records but leave other columns unaffected. See [Upserting data using the Python API](https://sqlite-utils.readthedocs.io/en/stable/python-api.html#python-api-upsert) and [Upserting data using the CLI](https://sqlite-utils.readthedocs.io/en/stable/cli.html#upserting-data) for full details. If you want the old behaviour - where records were completely replaced - you can use `$ sqlite-utils insert ... --replace` on the command-line and `.insert(..., replace=True)` and `.insert_all(..., replace=True)` in the Python API. See [Insert-replacing data using the Python API](https://sqlite-utils.readthedocs.io/en/stable/python-api.html#python-api-insert-replace) and [Insert-replacing data using the CLI](https://sqlite-utils.readthedocs.io/en/stable/cli.html#cli-insert-replace) for more. For full background on this change, see issue #66.",2019-12-30T06:26:09Z,"[""cli"", ""click"", ""datasette"", ""datasette-io"", ""datasette-tool"", ""python"", ""sqlite"", ""sqlite-database""]"