rowid,repo,release,date,body_markdown,published_at,topics 206156866,https://github.com/dogsheep/twitter-to-sqlite,https://github.com/dogsheep/twitter-to-sqlite/releases/tag/0.1a,2019-09-04,,2019-09-04T22:08:18Z,"[""datasette"", ""datasette-io"", ""datasette-tool"", ""dogsheep"", ""sqlite"", ""twitter"", ""twitter-api""]" 197882382,https://github.com/dogsheep/healthkit-to-sqlite,https://github.com/dogsheep/healthkit-to-sqlite/releases/tag/0.1,2019-07-20,,2019-07-20T16:43:09Z,"[""datasette"", ""datasette-io"", ""datasette-tool"", ""dogsheep"", ""healthkit"", ""sqlite""]" 206156866,https://github.com/dogsheep/twitter-to-sqlite,https://github.com/dogsheep/twitter-to-sqlite/releases/tag/0.10,2019-10-15,"* favorites command now populates `favorited_by` table - #14 * favorites `--stop_after` option - #20 * Store unescaped `full_text` of Tweet - #21 ",2019-10-15T18:56:09Z,"[""datasette"", ""datasette-io"", ""datasette-tool"", ""dogsheep"", ""sqlite"", ""twitter"", ""twitter-api""]" 205429375,https://github.com/dogsheep/swarm-to-sqlite,https://github.com/dogsheep/swarm-to-sqlite/releases/tag/0.2,2019-10-16,"* Added --since option, closes #3 ",2019-10-16T20:40:55Z,"[""datasette"", ""datasette-io"", ""datasette-tool"", ""dogsheep"", ""foursquare"", ""foursquare-api"", ""sqlite"", ""swarm""]" 206156866,https://github.com/dogsheep/twitter-to-sqlite,https://github.com/dogsheep/twitter-to-sqlite/releases/tag/0.11,2019-10-16,"* Added `--since_id` and `--since` to `user-timeline` command, refs #20 * `--since` and `--since_id` options for `home-timeline`, closes #19 * `import` command now works on files and directories, closes #22 ",2019-10-16T19:38:42Z,"[""datasette"", ""datasette-io"", ""datasette-tool"", ""dogsheep"", ""sqlite"", ""twitter"", ""twitter-api""]" 206156866,https://github.com/dogsheep/twitter-to-sqlite,https://github.com/dogsheep/twitter-to-sqlite/releases/tag/0.5,2019-09-10,* Added `followers-ids` and `friends-ids` subcommands,2019-09-10T17:39:47Z,"[""datasette"", ""datasette-io"", ""datasette-tool"", ""dogsheep"", ""sqlite"", ""twitter"", ""twitter-api""]" 207052882,https://github.com/dogsheep/github-to-sqlite,https://github.com/dogsheep/github-to-sqlite/releases/tag/0.4,2019-09-17,"* Added `github-to-sqlite repos` command, #3 ",2019-09-17T00:19:42Z,"[""datasette"", ""datasette-io"", ""datasette-tool"", ""dogsheep"", ""github-api"", ""sqlite""]" 140912432,https://github.com/simonw/sqlite-utils,https://github.com/simonw/sqlite-utils/releases/tag/2.9.1,2020-05-11,"* Added custom project links to the [PyPI listing](https://pypi.org/project/sqlite-utils/). ",2020-05-11T19:21:24Z,"[""cli"", ""click"", ""datasette"", ""datasette-io"", ""datasette-tool"", ""python"", ""sqlite"", ""sqlite-database""]" 140912432,https://github.com/simonw/sqlite-utils,https://github.com/simonw/sqlite-utils/releases/tag/2.10.1,2020-06-23,* Added documentation for the `table.pks` introspection property. #116,2020-06-23T21:04:50Z,"[""cli"", ""click"", ""datasette"", ""datasette-io"", ""datasette-tool"", ""python"", ""sqlite"", ""sqlite-database""]" 206156866,https://github.com/dogsheep/twitter-to-sqlite,https://github.com/dogsheep/twitter-to-sqlite/releases/tag/0.21.3,2020-07-23,* Added table of contents to the documentation,2020-07-23T14:57:11Z,"[""datasette"", ""datasette-io"", ""datasette-tool"", ""dogsheep"", ""sqlite"", ""twitter"", ""twitter-api""]" 207052882,https://github.com/dogsheep/github-to-sqlite,https://github.com/dogsheep/github-to-sqlite/releases/tag/0.2,2019-09-14,"* Added the `github-to-sqlite starred` command for retrieving starred repos, #1 ",2019-09-14T21:32:34Z,"[""datasette"", ""datasette-io"", ""datasette-tool"", ""dogsheep"", ""github-api"", ""sqlite""]" 206156866,https://github.com/dogsheep/twitter-to-sqlite,https://github.com/dogsheep/twitter-to-sqlite/releases/tag/0.20.1,2020-04-01,"* Buf fix: `since_id` table no longer records a record for `None`, `None`. #41",2020-04-01T04:33:35Z,"[""datasette"", ""datasette-io"", ""datasette-tool"", ""dogsheep"", ""sqlite"", ""twitter"", ""twitter-api""]" 140912432,https://github.com/simonw/sqlite-utils,https://github.com/simonw/sqlite-utils/releases/tag/2.4.3,2020-03-23,* Column type suggestion code is no longer confused by null values. (#94),2020-03-23T20:00:25Z,"[""cli"", ""click"", ""datasette"", ""datasette-io"", ""datasette-tool"", ""python"", ""sqlite"", ""sqlite-database""]" 213286752,https://github.com/dogsheep/pocket-to-sqlite,https://github.com/dogsheep/pocket-to-sqlite/releases/tag/0.2,2020-03-27,"* Defaults to only retrieving updated items, unless you use `--all`. #2 * Now displays a progress bar for initial data import and `--all`. * Data is now fetched 500 items at a time using API pagination. #1 * Now depends on `sqlite-utils 2.x`. * `auth.json` now uses `pocket_` prefix on each stored key. #4",2020-03-27T22:26:30Z,"[""datasette"", ""datasette-io"", ""datasette-tool"", ""dogsheep"", ""pocket"", ""pocket-api"", ""sqlite""]" 256834907,https://github.com/dogsheep/dogsheep-photos,https://github.com/dogsheep/dogsheep-photos/releases/tag/0.1a,2020-04-24,* First alpha release,2020-04-24T00:40:57Z,"[""datasette"", ""datasette-io"", ""datasette-tool"", ""dogsheep"", ""sqlite""]" 207052882,https://github.com/dogsheep/github-to-sqlite,https://github.com/dogsheep/github-to-sqlite/releases/tag/0.1.1,2019-09-14,* Fix bug in authentication handling code,2019-09-14T19:42:08Z,"[""datasette"", ""datasette-io"", ""datasette-tool"", ""dogsheep"", ""github-api"", ""sqlite""]" 206156866,https://github.com/dogsheep/twitter-to-sqlite,https://github.com/dogsheep/twitter-to-sqlite/releases/tag/0.11.1,2019-10-16,"* Fix bugs running `home-timeline --since` from scratch. If tables were missing, script would throw an error.",2019-10-16T22:31:51Z,"[""datasette"", ""datasette-io"", ""datasette-tool"", ""dogsheep"", ""sqlite"", ""twitter"", ""twitter-api""]" 206156866,https://github.com/dogsheep/twitter-to-sqlite,https://github.com/dogsheep/twitter-to-sqlite/releases/tag/0.21.1,2020-04-30,* Fixed bug that occurred when the `since_ids` table had not yet been created. #46,2020-04-30T18:21:46Z,"[""datasette"", ""datasette-io"", ""datasette-tool"", ""dogsheep"", ""sqlite"", ""twitter"", ""twitter-api""]" 140912432,https://github.com/simonw/sqlite-utils,https://github.com/simonw/sqlite-utils/releases/tag/2.4.4,2020-03-23,* Fixed bug where columns with only null values were not correctly created. (#95),2020-03-23T20:34:18Z,"[""cli"", ""click"", ""datasette"", ""datasette-io"", ""datasette-tool"", ""python"", ""sqlite"", ""sqlite-database""]" 207052882,https://github.com/dogsheep/github-to-sqlite,https://github.com/dogsheep/github-to-sqlite/releases/tag/1.0.1,2020-04-16,"* Fixed bug where repository topics were not being correctly fetched #26 * Live demo at https://github-to-sqlite.dogsheep.net/ now uses [datasette-render-markdown](https://github.com/simonw/datasette-render-markdown) and pulls in issue comments #25",2020-04-16T18:09:29Z,"[""datasette"", ""datasette-io"", ""datasette-tool"", ""dogsheep"", ""github-api"", ""sqlite""]" 205429375,https://github.com/dogsheep/swarm-to-sqlite,https://github.com/dogsheep/swarm-to-sqlite/releases/tag/0.3.1,2020-03-28,"* Fixed bug with very old checkins that were missing their source - thanks, @mfa! #6",2020-03-28T02:30:10Z,"[""datasette"", ""datasette-io"", ""datasette-tool"", ""dogsheep"", ""foursquare"", ""foursquare-api"", ""sqlite"", ""swarm""]" 197882382,https://github.com/dogsheep/healthkit-to-sqlite,https://github.com/dogsheep/healthkit-to-sqlite/releases/tag/0.4,2019-11-08,* Fixed workout latitude/longitude points import for iOS 13 - #10,2019-11-08T01:19:51Z,"[""datasette"", ""datasette-io"", ""datasette-tool"", ""dogsheep"", ""healthkit"", ""sqlite""]" 207052882,https://github.com/dogsheep/github-to-sqlite,https://github.com/dogsheep/github-to-sqlite/releases/tag/1.0,2020-03-24,"* Full-text search is configured for more tables. #19 * Release assets are now pulled out into a separate `assets` table. #15 * Now depends on sqlite-utils 2.x. #20 * Commit raw authors are now used to populate a new `raw_authors` able. #18 * New live demo at https://github-to-sqlite.dogsheep.net/ #13 * GitHub API errors are now raised as Pyton exceptions. #21 * Fixed bug running `commits` against repos with no commits. #22",2020-03-24T00:11:51Z,"[""datasette"", ""datasette-io"", ""datasette-tool"", ""dogsheep"", ""github-api"", ""sqlite""]" 140912432,https://github.com/simonw/sqlite-utils,https://github.com/simonw/sqlite-utils/releases/tag/2.7,2020-04-30,"* New `columns=` argument for the `.insert()`, `.insert_all()`, `.upsert()` and `.upsert_all()` methods, for over-riding the auto-detected types for columns and specifying additional columns that should be added when the table is created. See [Custom column order and column types](https://sqlite-utils.readthedocs.io/en/stable/python-api.html#python-api-custom-columns). (#100) ",2020-04-30T18:33:20Z,"[""cli"", ""click"", ""datasette"", ""datasette-io"", ""datasette-tool"", ""python"", ""sqlite"", ""sqlite-database""]" 207052882,https://github.com/dogsheep/github-to-sqlite,https://github.com/dogsheep/github-to-sqlite/releases/tag/0.7,2020-03-11,* New `github-to-sqlite commits my.db dogsheep/github-to-sqlite` command. #17,2020-03-11T02:48:32Z,"[""datasette"", ""datasette-io"", ""datasette-tool"", ""dogsheep"", ""github-api"", ""sqlite""]" 207052882,https://github.com/dogsheep/github-to-sqlite,https://github.com/dogsheep/github-to-sqlite/releases/tag/1.1,2020-04-18,"* New `github-to-sqlite contributors` command for fetching contributors to one or more repositories. #28 * The [live demo](https://github-to-sqlite.dogsheep.net/) now includes contributors, and pulls data from `simonw/datasette` and `simonw/sqlite-utils` in addition to the Dogsheep repositories. * The `organization` column in the `repos` table is now a foreign key to `users` as opposed to a big piece of JSON. #27",2020-04-18T15:09:55Z,"[""datasette"", ""datasette-io"", ""datasette-tool"", ""dogsheep"", ""github-api"", ""sqlite""]" 207052882,https://github.com/dogsheep/github-to-sqlite,https://github.com/dogsheep/github-to-sqlite/releases/tag/2.1,2020-04-30,* New `github-to-sqlite scrape-dependents` command for importing the dependent repositories for a repo. #34,2020-04-30T23:03:32Z,"[""datasette"", ""datasette-io"", ""datasette-tool"", ""dogsheep"", ""github-api"", ""sqlite""]" 140912432,https://github.com/simonw/sqlite-utils,https://github.com/simonw/sqlite-utils/releases/tag/2.8,2020-05-03,"* New `sqlite-utils create-table` command, see [Creating tables](https://sqlite-utils.readthedocs.io/en/latest/cli.html#creating-tables). (#27) * New `sqlite-utils create-view` command, see [Creating views](https://sqlite-utils.readthedocs.io/en/latest/cli.html#creating-views). (#107) ",2020-05-03T15:41:31Z,"[""cli"", ""click"", ""datasette"", ""datasette-io"", ""datasette-tool"", ""python"", ""sqlite"", ""sqlite-database""]" 140912432,https://github.com/simonw/sqlite-utils,https://github.com/simonw/sqlite-utils/releases/tag/2.7.1,2020-05-01,"* New `sqlite-utils views my.db` command for listing views in a database, see [Listing views](https://sqlite-utils.readthedocs.io/en/latest/cli.html#cli-views). (#105) * `sqlite-utils tables` (and `views`) has a new `--schema` option which outputs the table/view schema, see [Listing tables](https://sqlite-utils.readthedocs.io/en/latest/cli.html#cli-tables). (#104) * Nested structures containing invalid JSON values (e.g. Python bytestrings) are now serialized using `repr()` instead of throwing an error. (#102)",2020-05-01T22:11:19Z,"[""cli"", ""click"", ""datasette"", ""datasette-io"", ""datasette-tool"", ""python"", ""sqlite"", ""sqlite-database""]" 206156866,https://github.com/dogsheep/twitter-to-sqlite,https://github.com/dogsheep/twitter-to-sqlite/releases/tag/0.7,2019-10-07,* New `statuses-lookup` command for bulk fetching tweets by their IDs - #13 ,2019-10-07T00:33:28Z,"[""datasette"", ""datasette-io"", ""datasette-tool"", ""dogsheep"", ""sqlite"", ""twitter"", ""twitter-api""]" 140912432,https://github.com/simonw/sqlite-utils,https://github.com/simonw/sqlite-utils/releases/tag/2.6,2020-04-16,"* New `table.rows_where(..., order_by=""age desc"")` argument, see [Listing rows](https://sqlite-utils.readthedocs.io/en/stable/python-api.html#listing-rows). (#76) ",2020-04-16T03:14:48Z,"[""cli"", ""click"", ""datasette"", ""datasette-io"", ""datasette-tool"", ""python"", ""sqlite"", ""sqlite-database""]" 206156866,https://github.com/dogsheep/twitter-to-sqlite,https://github.com/dogsheep/twitter-to-sqlite/releases/tag/0.9,2019-10-11,"* New `twitter-to-sqlite home-timeline` command, for retrieving your timeline of tweets from people you follow - #18 * `twitter-to-sqlite import` created tables now use the `archive_` prefix instead of `archive-`, for easier querying * Running `twitter-to-sqlite import` now deletes existing `archive_` tables and recreates them - #17",2019-10-11T16:57:25Z,"[""datasette"", ""datasette-io"", ""datasette-tool"", ""dogsheep"", ""sqlite"", ""twitter"", ""twitter-api""]" 206156866,https://github.com/dogsheep/twitter-to-sqlite,https://github.com/dogsheep/twitter-to-sqlite/releases/tag/0.8,2019-10-11,* New `twitter-to-sqlite import twitter.db archive.zip` command for importing data from a Twitter export file. #4 - [documentation here](https://github.com/dogsheep/twitter-to-sqlite/blob/master/README.md#importing-data-from-your-twitter-archive).,2019-10-11T06:46:52Z,"[""datasette"", ""datasette-io"", ""datasette-tool"", ""dogsheep"", ""sqlite"", ""twitter"", ""twitter-api""]" 206156866,https://github.com/dogsheep/twitter-to-sqlite,https://github.com/dogsheep/twitter-to-sqlite/releases/tag/0.4,2019-09-09,"* New `users-lookup` command for fetching multiple user profiles, including using new `--sql` and `--attach` options * New `list-members` subcommand for fetching members of a list * Added `stop_after` option to `user-timeline` command",2019-09-09T22:43:05Z,"[""datasette"", ""datasette-io"", ""datasette-tool"", ""dogsheep"", ""sqlite"", ""twitter"", ""twitter-api""]" 207052882,https://github.com/dogsheep/github-to-sqlite,https://github.com/dogsheep/github-to-sqlite/releases/tag/0.5,2019-10-13,"* New command: `github-to-sqlite issue-comments` for importing comments on issues - #7 * `github-to-sqlite issues` now accepts optional `--issue=1` argument * Fixed bug inserting users into already-created table with wrong columns - #6",2019-10-13T05:30:05Z,"[""datasette"", ""datasette-io"", ""datasette-tool"", ""dogsheep"", ""github-api"", ""sqlite""]" 207052882,https://github.com/dogsheep/github-to-sqlite,https://github.com/dogsheep/github-to-sqlite/releases/tag/2.2,2020-05-02,"* New command: `github-to-sqlite stargazers` ([docs](https://github.com/dogsheep/github-to-sqlite/blob/2.2/README.md#fetching-users-that-have-starred-specific-repos)) for fetching all users who have starred the specified repositories. #4 * Added several views: [dependent_repos](https://github-to-sqlite.dogsheep.net/github/dependent_repos), [repos_starred](https://github-to-sqlite.dogsheep.net/github/repos_starred), [recent_releases](https://github-to-sqlite.dogsheep.net/github/recent_releases). #10 #12 #36 * Added indexes on all foreign key relationships. #35 * GitHub API token can now be read from `GITHUB_TOKEN` environment variable. #33",2020-05-02T21:28:00Z,"[""datasette"", ""datasette-io"", ""datasette-tool"", ""dogsheep"", ""github-api"", ""sqlite""]" 206156866,https://github.com/dogsheep/twitter-to-sqlite,https://github.com/dogsheep/twitter-to-sqlite/releases/tag/0.21,2020-04-17,"* New command: `twitter-to-sqlite lists username` fetches lists owned by the specified users. #43 * Handle tweets with a blank `source`. #44 * Fixed error with `twitter-to-sqlite user-timeline --sql=... --ids`. #42 * Better error messages for non-existing users. #37 ",2020-04-17T23:46:51Z,"[""datasette"", ""datasette-io"", ""datasette-tool"", ""dogsheep"", ""sqlite"", ""twitter"", ""twitter-api""]" 206156866,https://github.com/dogsheep/twitter-to-sqlite,https://github.com/dogsheep/twitter-to-sqlite/releases/tag/0.6,2019-10-06,"* New experimental `track` and `follow` commands for subscribing to the Twitter real-time API #11. [Documentation](https://github.com/dogsheep/twitter-to-sqlite#capturing-tweets-in-real-time-with-track-and-follow) for track and follow. * Documentation for `--sql` and `--attach`, refs #8",2019-10-06T04:52:18Z,"[""datasette"", ""datasette-io"", ""datasette-tool"", ""dogsheep"", ""sqlite"", ""twitter"", ""twitter-api""]" 256834907,https://github.com/dogsheep/dogsheep-photos,https://github.com/dogsheep/dogsheep-photos/releases/tag/0.2a,2020-04-24,* Only upload photos not already in S3. #9 ,2020-04-24T00:44:21Z,"[""datasette"", ""datasette-io"", ""datasette-tool"", ""dogsheep"", ""sqlite""]" 140912432,https://github.com/simonw/sqlite-utils,https://github.com/simonw/sqlite-utils/releases/tag/2.5,2020-04-13,"* Panda’s Timestamp is now stored as a SQLite TEXT column. Thanks, b0b5h4rp13! (#96) * `table.last_pk` is now only available for inserts or upserts of a single record. (#98) * New `Database(filepath, recreate=True)` parameter for deleting and recreating the database. (#97) ",2020-04-13T03:54:08Z,"[""cli"", ""click"", ""datasette"", ""datasette-io"", ""datasette-tool"", ""python"", ""sqlite"", ""sqlite-database""]" 206156866,https://github.com/dogsheep/twitter-to-sqlite,https://github.com/dogsheep/twitter-to-sqlite/releases/tag/0.20,2020-04-01,"* Reworked how `--since` works to fix a bug spotted in #39. The most recently seen tweet ID for various commands is now stored in a new `since_ids` table. * New feature: the friends, followers and listed counts for each user are now stored in a `count_history` table and updated any time we spot that the counts in that user's profile have changed. #40",2020-04-01T04:18:53Z,"[""datasette"", ""datasette-io"", ""datasette-tool"", ""dogsheep"", ""sqlite"", ""twitter"", ""twitter-api""]" 206156866,https://github.com/dogsheep/twitter-to-sqlite,https://github.com/dogsheep/twitter-to-sqlite/releases/tag/0.12,2019-10-17,"* The `source` column for a tweet is now a foreign key to a new `sources` table - #12 * New migrations system to upgrade existing databases to handle the new `source` column extraction - #23 * Experimental implementation of new `twitter-to-sqlite search tweets.db search-term` command, which runs a search and saves the tweets from that search - #3 * Fixed bug where sometimes a user record for the authenticated user was not persisted to the `users` table",2019-10-17T18:00:28Z,"[""datasette"", ""datasette-io"", ""datasette-tool"", ""dogsheep"", ""sqlite"", ""twitter"", ""twitter-api""]" 206156866,https://github.com/dogsheep/twitter-to-sqlite,https://github.com/dogsheep/twitter-to-sqlite/releases/tag/0.19,2020-03-20,"* The `twitter-to-sqlite friends` and `twitter-to-sqlite followers` commands now accept the `--sql` and `--attach` options. #36 * Improved the display of the progress bar for the `user-timeline` command. #38",2020-03-20T23:16:53Z,"[""datasette"", ""datasette-io"", ""datasette-tool"", ""dogsheep"", ""sqlite"", ""twitter"", ""twitter-api""]" 206202864,https://github.com/dogsheep/inaturalist-to-sqlite,https://github.com/dogsheep/inaturalist-to-sqlite/releases/tag/0.2,2020-03-24,"* Upgraded to `sqlite-utils` 2.x * First non-alpha release",2020-03-24T00:36:40Z,"[""datasette"", ""datasette-io"", ""datasette-tool"", ""dogsheep"", ""inaturalist"", ""sqlite""]" 206156866,https://github.com/dogsheep/twitter-to-sqlite,https://github.com/dogsheep/twitter-to-sqlite/releases/tag/0.17,2020-03-20,"* Upgraded to latest `sqlite-utils` (currently 2.4.2) * This fixed a bug with `user-timeline` - #34",2020-03-20T19:23:40Z,"[""datasette"", ""datasette-io"", ""datasette-tool"", ""dogsheep"", ""sqlite"", ""twitter"", ""twitter-api""]" 197882382,https://github.com/dogsheep/healthkit-to-sqlite,https://github.com/dogsheep/healthkit-to-sqlite/releases/tag/0.5,2020-03-28,* Upgraded to latest sqlite-utils,2020-03-28T01:55:19Z,"[""datasette"", ""datasette-io"", ""datasette-tool"", ""dogsheep"", ""healthkit"", ""sqlite""]" 205429375,https://github.com/dogsheep/swarm-to-sqlite,https://github.com/dogsheep/swarm-to-sqlite/releases/tag/0.3,2020-03-28,* Upgraded to sqlite-utils 2.x,2020-03-28T02:28:35Z,"[""datasette"", ""datasette-io"", ""datasette-tool"", ""dogsheep"", ""foursquare"", ""foursquare-api"", ""sqlite"", ""swarm""]" 256834907,https://github.com/dogsheep/dogsheep-photos,https://github.com/dogsheep/dogsheep-photos/releases/tag/0.3a,2020-05-05,"* Upload photos to S3 in a thread pool #11 * New `--dry-run` option to `upload` command * New `photos-to-sqlite apple-photos` command for importing Apple Photos metadata #1 * Apple Photos quality scores are imported into `apple_photos_scores` table #15 * Machine learning labels imported from Apple Photos into `labels` table #16",2020-05-05T20:17:00Z,"[""datasette"", ""datasette-io"", ""datasette-tool"", ""dogsheep"", ""sqlite""]" 140912432,https://github.com/simonw/sqlite-utils,https://github.com/simonw/sqlite-utils/releases/tag/2.7.2,2020-05-02,"* `db.create_view(...)` now has additional parameters `ignore=True` or `replace=True`, see [Creating views](https://sqlite-utils.readthedocs.io/en/latest/python-api.html#creating-views). (#106) ",2020-05-02T16:10:11Z,"[""cli"", ""click"", ""datasette"", ""datasette-io"", ""datasette-tool"", ""python"", ""sqlite"", ""sqlite-database""]" 207052882,https://github.com/dogsheep/github-to-sqlite,https://github.com/dogsheep/github-to-sqlite/releases/tag/0.3,2019-09-14,"* `license` is now extracted from the `repos` table into a separate `licenses` table with a foreign key, #2 ",2019-09-14T21:50:01Z,"[""datasette"", ""datasette-io"", ""datasette-tool"", ""dogsheep"", ""github-api"", ""sqlite""]" 206156866,https://github.com/dogsheep/twitter-to-sqlite,https://github.com/dogsheep/twitter-to-sqlite/releases/tag/0.14,2019-11-04,"* `search` command gained `--since_id` and `--since` options, for retrieving tweets since the last time the search was run * `search` command is [now documented](https://github.com/dogsheep/twitter-to-sqlite/blob/0.14/README.md#running-searches). Closes #3.",2019-11-04T05:33:56Z,"[""datasette"", ""datasette-io"", ""datasette-tool"", ""dogsheep"", ""sqlite"", ""twitter"", ""twitter-api""]" 140912432,https://github.com/simonw/sqlite-utils,https://github.com/simonw/sqlite-utils/releases/tag/2.4.2,2020-03-14,"* `table.column_dicts` now works with all column types - previously it would throw errors on types other than `TEXT`, `BLOB`, `INTEGER` or `FLOAT`. (#92) * Documentation for `NotFoundError` thrown by `table.get(pk)` - see [Retrieving a specific record](https://sqlite-utils.readthedocs.io/en/latest/python-api.html#python-api-get). ",2020-03-14T20:13:18Z,"[""cli"", ""click"", ""datasette"", ""datasette-io"", ""datasette-tool"", ""python"", ""sqlite"", ""sqlite-database""]" 140912432,https://github.com/simonw/sqlite-utils,https://github.com/simonw/sqlite-utils/releases/tag/2.4,2020-02-27,"* `table.disable_fts()` can now be used to remove FTS tables and triggers that were created using `table.enable_fts(...)`. (#88) * The `sqlite-utils disable-fts` command can be used to remove FTS tables and triggers from the command-line. (#88) * Trying to create table columns with square braces ([ or ]) in the name now raises an error. (#86) * Subclasses of `dict`, `list` and `tuple` are now detected as needing a JSON column. (#87) ",2020-02-27T04:58:25Z,"[""cli"", ""click"", ""datasette"", ""datasette-io"", ""datasette-tool"", ""python"", ""sqlite"", ""sqlite-database""]" 140912432,https://github.com/simonw/sqlite-utils,https://github.com/simonw/sqlite-utils/releases/tag/2.4.1,2020-03-14,"* `table.enable_fts()` now works with columns that contain spaces. (#90) ",2020-03-14T20:06:08Z,"[""cli"", ""click"", ""datasette"", ""datasette-io"", ""datasette-tool"", ""python"", ""sqlite"", ""sqlite-database""]" 206156866,https://github.com/dogsheep/twitter-to-sqlite,https://github.com/dogsheep/twitter-to-sqlite/releases/tag/0.18,2020-03-20,"* `twitter-to-sqlite user-timeline` command now accepts `--sql` and `--attach` and `--ids` options, and can also accept multiple screen names or user IDs as command arguments. #35",2020-03-20T20:19:42Z,"[""datasette"", ""datasette-io"", ""datasette-tool"", ""dogsheep"", ""sqlite"", ""twitter"", ""twitter-api""]" 248903544,https://github.com/dogsheep/hacker-news-to-sqlite,https://github.com/dogsheep/hacker-news-to-sqlite/releases/tag/0.1a,2020-03-21,* `user` and `trees` commands.,2020-03-21T04:26:28Z,"[""datasette"", ""datasette-io"", ""datasette-tool"", ""dogsheep"", ""hacker-news""]" 140912432,https://github.com/simonw/sqlite-utils,https://github.com/simonw/sqlite-utils/releases/tag/3.22.1,2022-01-26,"- All commands now include example usage in their `--help` - see [CLI reference](https://sqlite-utils.datasette.io/en/stable/cli-reference.html#cli-reference). ([#384](https://github.com/simonw/sqlite-utils/issues/384)) - Python library documentation has a new [Getting started](https://sqlite-utils.datasette.io/en/stable/python-api.html#python-api-getting-started) section. ([#387](https://github.com/simonw/sqlite-utils/issues/387)) - Documentation now uses [Plausible analytics](https://plausible.io/). ([#389](https://github.com/simonw/sqlite-utils/issues/389))",2022-01-26T03:29:24Z,"[""cli"", ""click"", ""datasette"", ""datasette-io"", ""datasette-tool"", ""python"", ""sqlite"", ""sqlite-database""]" 140912432,https://github.com/simonw/sqlite-utils,https://github.com/simonw/sqlite-utils/releases/tag/3.2.1,2021-01-12,- Fixed a bug where `.add_missing_columns()` failed to take case insensitive column names into account. ([#221](https://github.com/simonw/sqlite-utils/issues/221)),2021-01-12T23:23:25Z,"[""cli"", ""click"", ""datasette"", ""datasette-io"", ""datasette-tool"", ""python"", ""sqlite"", ""sqlite-database""]" 140912432,https://github.com/simonw/sqlite-utils,https://github.com/simonw/sqlite-utils/releases/tag/3.4.1,2021-02-06,- Fixed a code import bug that slipped in to 3.4. ([#226](https://github.com/simonw/sqlite-utils/issues/226)),2021-02-06T02:11:15Z,"[""cli"", ""click"", ""datasette"", ""datasette-io"", ""datasette-tool"", ""python"", ""sqlite"", ""sqlite-database""]" 140912432,https://github.com/simonw/sqlite-utils,https://github.com/simonw/sqlite-utils/releases/tag/3.9.1,2021-06-13,- Fixed bug when using `table.upsert_all()` to create a table with only a single column that is treated as the primary key. ([#271](https://github.com/simonw/sqlite-utils/issues/271)),2021-06-13T03:00:45Z,"[""cli"", ""click"", ""datasette"", ""datasette-io"", ""datasette-tool"", ""python"", ""sqlite"", ""sqlite-database""]" 140912432,https://github.com/simonw/sqlite-utils,https://github.com/simonw/sqlite-utils/releases/tag/3.1.1,2021-01-01,"- Fixed failing test caused by `optimize` sometimes creating larger database files. ([#209](https://github.com/simonw/sqlite-utils/issues/209)) - Documentation now lives on - README now includes `brew install sqlite-utils` installation method.",2021-01-01T23:57:07Z,"[""cli"", ""click"", ""datasette"", ""datasette-io"", ""datasette-tool"", ""python"", ""sqlite"", ""sqlite-database""]" 140912432,https://github.com/simonw/sqlite-utils,https://github.com/simonw/sqlite-utils/releases/tag/3.22,2022-01-11,"- New [CLI reference](https://sqlite-utils.datasette.io/en/stable/cli-reference.html#cli-reference) documentation page, listing the output of `--help` for every one of the CLI commands. ([#383](https://github.com/simonw/sqlite-utils/issues/383)) - `sqlite-utils rows` now has `--limit` and `--offset` options for paginating through data. ([#381](https://github.com/simonw/sqlite-utils/issues/381)) - `sqlite-utils rows` now has `--where` and `-p` options for filtering the table using a `WHERE` query, see [Returning all rows in a table](https://sqlite-utils.datasette.io/en/stable/cli.html#cli-rows). ([#382](https://github.com/simonw/sqlite-utils/issues/382))",2022-01-11T23:49:28Z,"[""cli"", ""click"", ""datasette"", ""datasette-io"", ""datasette-tool"", ""python"", ""sqlite"", ""sqlite-database""]" 140912432,https://github.com/simonw/sqlite-utils,https://github.com/simonw/sqlite-utils/releases/tag/3.12,2021-06-25,"- New [db.query(sql, params)](https://sqlite-utils.datasette.io/en/stable/python-api.html#python-api-query) method, which executes a SQL query and returns the results as an iterator over Python dictionaries. ([#290](https://github.com/simonw/sqlite-utils/issues/290)) - This project now uses `flake8` and has started to use `mypy`. ([#291](https://github.com/simonw/sqlite-utils/issues/291)) - New documentation on [contributing](https://sqlite-utils.datasette.io/en/stable/contributing.html#contributing) to this project. ([#292](https://github.com/simonw/sqlite-utils/issues/292))",2021-06-25T18:00:18Z,"[""cli"", ""click"", ""datasette"", ""datasette-io"", ""datasette-tool"", ""python"", ""sqlite"", ""sqlite-database""]" 140912432,https://github.com/simonw/sqlite-utils,https://github.com/simonw/sqlite-utils/releases/tag/3.28,2022-07-15,"- New [table.duplicate(new_name)](https://sqlite-utils.datasette.io/en/stable/python-api.html#python-api-duplicate) method for creating a copy of a table with a matching schema and row contents. Thanks, [David](https://github.com/davidleejy). ([#449](https://github.com/simonw/sqlite-utils/issues/449)) - New `sqlite-utils duplicate data.db table_name new_name` CLI command for [Duplicating tables](https://sqlite-utils.datasette.io/en/stable/cli.html#cli-duplicate-table). ([#454](https://github.com/simonw/sqlite-utils/issues/454)) - `sqlite_utils.utils.rows_from_file()` is now a [documented API](https://sqlite-utils.datasette.io/en/stable/reference.html#reference-utils-rows-from-file). It can be used to read a sequence of dictionaries from a file-like object containing CSV, TSV, JSON or newline-delimited JSON. It can be passed an explicit format or can attempt to detect the format automatically. ([#443](https://github.com/simonw/sqlite-utils/issues/443)) - `sqlite_utils.utils.TypeTracker` is now a documented API for detecting the likely column types for a sequence of string rows, see [Detecting column types using TypeTracker](https://sqlite-utils.datasette.io/en/stable/python-api.html#python-api-typetracker). ([#445](https://github.com/simonw/sqlite-utils/issues/445)) - `sqlite_utils.utils.chunks()` is now a documented API for [splitting an iterator into chunks](https://sqlite-utils.datasette.io/en/stable/reference.html#reference-utils-chunks). ([#451](https://github.com/simonw/sqlite-utils/issues/451)) - `sqlite-utils enable-fts` now has a `--replace` option for replacing the existing FTS configuration for a table. ([#450](https://github.com/simonw/sqlite-utils/issues/450)) - The `create-index`, `add-column` and `duplicate` commands all now take a `--ignore` option for ignoring errors should the database not be in the right state for them to operate. ([#450](https://github.com/simonw/sqlite-utils/issues/450))",2022-07-15T23:02:45Z,"[""cli"", ""click"", ""datasette"", ""datasette-io"", ""datasette-tool"", ""python"", ""sqlite"", ""sqlite-database""]" 140912432,https://github.com/simonw/sqlite-utils,https://github.com/simonw/sqlite-utils/releases/tag/2.22,2020-10-16,"- New `--encoding` option for processing CSV and TSV files that use a non-utf-8 encoding, for both the `insert` and `update` commands. ([#182](https://github.com/simonw/sqlite-utils/issues/182)) - The `--load-extension` option is now available to many more commands. ([#137](https://github.com/simonw/sqlite-utils/issues/137)) - `--load-extension=spatialite` can be used to load SpatiaLite from common installation locations, if it is available. ([#136](https://github.com/simonw/sqlite-utils/issues/136)) - Tests now also run against Python 3.9. ([#184](https://github.com/simonw/sqlite-utils/issues/184)) - Passing `pk=[""id""]` now has the same effect as passing `pk=""id""`. ([#181](https://github.com/simonw/sqlite-utils/issues/181))",2020-10-16T19:31:45Z,"[""cli"", ""click"", ""datasette"", ""datasette-io"", ""datasette-tool"", ""python"", ""sqlite"", ""sqlite-database""]" 140912432,https://github.com/simonw/sqlite-utils,https://github.com/simonw/sqlite-utils/releases/tag/2.11,2020-07-08,"- New `--truncate` option to `sqlite-utils insert`, and `truncate=True` argument to `.insert_all()`. Thanks, Thomas Sibley. ([#118](https://github.com/simonw/sqlite-utils/pull/118)) - The `sqlite-utils query` command now runs updates in a transaction. Thanks, Thomas Sibley. ([#120](https://github.com/simonw/sqlite-utils/pull/120))",2020-07-08T17:36:45Z,"[""cli"", ""click"", ""datasette"", ""datasette-io"", ""datasette-tool"", ""python"", ""sqlite"", ""sqlite-database""]" 140912432,https://github.com/simonw/sqlite-utils,https://github.com/simonw/sqlite-utils/releases/tag/2.15,2020-08-10,"- New `db.enable_wal()` and `db.disable_wal()` methods for enabling and disabling [Write-Ahead Logging](https://www.sqlite.org/wal.html) for a database file - see [WAL mode](https://sqlite-utils.readthedocs.io/en/stable//python-api.html#python-api-wal) in the Python API documentation. - Also `sqlite-utils enable-wal file.db` and `sqlite-utils disable-wal file.db` commands for doing the same thing on the command-line, see [WAL mode (CLI)](https://sqlite-utils.readthedocs.io/en/stable/cli.html#cli-wal). ([#132](https://github.com/simonw/sqlite-utils/issues/132))",2020-08-10T19:07:27Z,"[""cli"", ""click"", ""datasette"", ""datasette-io"", ""datasette-tool"", ""python"", ""sqlite"", ""sqlite-database""]" 140912432,https://github.com/simonw/sqlite-utils,https://github.com/simonw/sqlite-utils/releases/tag/3.26,2022-04-13,"- New `errors=r.IGNORE/r.SET_NULL` parameter for the `r.parsedatetime()` and `r.parsedate()` [convert recipes](https://sqlite-utils.datasette.io/en/stable/cli.html#cli-convert-recipes). ([#416](https://github.com/simonw/sqlite-utils/issues/416)) - Fixed a bug where `--multi` could not be used in combination with `--dry-run` for the [convert](https://sqlite-utils.datasette.io/en/stable/cli.html#cli-convert) command. ([#415](https://github.com/simonw/sqlite-utils/issues/415)) - New documentation: [Using a convert() function to execute initialization](https://sqlite-utils.datasette.io/en/stable/cli.html#cli-convert-complex). ([#420](https://github.com/simonw/sqlite-utils/issues/420)) - More robust detection for whether or not `deterministic=True` is supported. ([#425](https://github.com/simonw/sqlite-utils/issues/425))",2022-04-13T22:53:36Z,"[""cli"", ""click"", ""datasette"", ""datasette-io"", ""datasette-tool"", ""python"", ""sqlite"", ""sqlite-database""]" 140912432,https://github.com/simonw/sqlite-utils,https://github.com/simonw/sqlite-utils/releases/tag/3.25,2022-03-02,"- New `hash_id_columns=` parameter for creating a primary key that's a hash of the content of specific columns - see [Setting an ID based on the hash of the row contents](https://sqlite-utils.datasette.io/en/stable/python-api.html#python-api-hash) for details. ([#343](https://github.com/simonw/sqlite-utils/issues/343)) - New [db.sqlite_version](https://sqlite-utils.datasette.io/en/stable/python-api.html#python-api-sqlite-version) property, returning a tuple of integers representing the version of SQLite, for example `(3, 38, 0)`. - Fixed a bug where [register_function(deterministic=True)](https://sqlite-utils.datasette.io/en/stable/python-api.html#python-api-register-function) caused errors on versions of SQLite prior to 3.8.3. ([#408](https://github.com/simonw/sqlite-utils/issues/408)) - New documented [hash_record(record, keys=...)](https://sqlite-utils.datasette.io/en/stable/reference.html#reference-utils-hash-record) function.",2022-03-02T06:35:18Z,"[""cli"", ""click"", ""datasette"", ""datasette-io"", ""datasette-tool"", ""python"", ""sqlite"", ""sqlite-database""]" 140912432,https://github.com/simonw/sqlite-utils,https://github.com/simonw/sqlite-utils/releases/tag/2.19,2020-09-20,"- New `sqlite-utils add-foreign-keys` command for [Adding multiple foreign keys at once](https://sqlite-utils.readthedocs.io/en/stable/cli.html#cli-add-foreign-keys). ([#157](https://github.com/simonw/sqlite-utils/issues/157)) - New `table.enable_fts(..., replace=True)` argument for replacing an existing FTS table with a new configuration. ([#160](https://github.com/simonw/sqlite-utils/issues/160)) - New `table.add_foreign_key(..., ignore=True)` argument for ignoring a foreign key if it already exists. ([#112](https://github.com/simonw/sqlite-utils/issues/112))",2020-09-20T22:24:04Z,"[""cli"", ""click"", ""datasette"", ""datasette-io"", ""datasette-tool"", ""python"", ""sqlite"", ""sqlite-database""]" 140912432,https://github.com/simonw/sqlite-utils,https://github.com/simonw/sqlite-utils/releases/tag/2.9,2020-05-11,"- New `sqlite-utils drop-table` command, see [Dropping tables](https://sqlite-utils.readthedocs.io/en/2.9/cli.html#cli-drop-table). ([#111](https://github.com/simonw/sqlite-utils/issues/111)) - New `sqlite-utils drop-view` command, see [Dropping views](https://sqlite-utils.readthedocs.io/en/2.9/cli.html#cli-drop-view). - Python `decimal.Decimal` objects are now stored as `FLOAT`. ([#110](https://github.com/simonw/sqlite-utils/issues/110))",2020-05-11T01:57:11Z,"[""cli"", ""click"", ""datasette"", ""datasette-io"", ""datasette-tool"", ""python"", ""sqlite"", ""sqlite-database""]" 140912432,https://github.com/simonw/sqlite-utils,https://github.com/simonw/sqlite-utils/releases/tag/3.8,2021-06-03,"- New `sqlite-utils indexes` command to list indexes in a database, see [Listing indexes](https://sqlite-utils.datasette.io/en/stable/cli.html#cli-indexes). ([#263](https://github.com/simonw/sqlite-utils/issues/263)) - `table.xindexes` introspection property returning more details about that table's indexes, see [.xindexes](https://sqlite-utils.datasette.io/en/stable/python-api.html#python-api-introspection-xindexes). ([#261](https://github.com/simonw/sqlite-utils/issues/261))",2021-06-03T05:17:33Z,"[""cli"", ""click"", ""datasette"", ""datasette-io"", ""datasette-tool"", ""python"", ""sqlite"", ""sqlite-database""]" 140912432,https://github.com/simonw/sqlite-utils,https://github.com/simonw/sqlite-utils/releases/tag/3.11,2021-06-20,"- New `sqlite-utils memory data.csv --schema` option, for outputting the schema of the in-memory database generated from one or more files. See [--schema, --dump and --save](https://sqlite-utils.datasette.io/en/stable/cli.html#cli-memory-schema-dump-save). ([#288](https://github.com/simonw/sqlite-utils/issues/288)) - Added [installation instructions](https://sqlite-utils.datasette.io/en/stable/installation.html#installation). ([#286](https://github.com/simonw/sqlite-utils/issues/286))",2021-06-20T18:53:09Z,"[""cli"", ""click"", ""datasette"", ""datasette-io"", ""datasette-tool"", ""python"", ""sqlite"", ""sqlite-database""]" 140912432,https://github.com/simonw/sqlite-utils,https://github.com/simonw/sqlite-utils/releases/tag/3.9,2021-06-12,"- New `sqlite-utils schema` command showing the full SQL schema for a database, see [Showing the schema (CLI)](https://sqlite-utils.datasette.io/en/stable/cli.html#cli-schema). ([#268](https://github.com/simonw/sqlite-utils/issues/268)) - `db.schema` introspection property exposing the same feature to the Python library, see [Showing the schema (Python library)](https://sqlite-utils.datasette.io/en/stable/python-api.html#python-api-schema).",2021-06-12T02:08:03Z,"[""cli"", ""click"", ""datasette"", ""datasette-io"", ""datasette-tool"", ""python"", ""sqlite"", ""sqlite-database""]" 140912432,https://github.com/simonw/sqlite-utils,https://github.com/simonw/sqlite-utils/releases/tag/3.7,2021-05-29,"- New `table.pks_and_rows_where()` method returning `(primary_key, row_dictionary)` tuples - see [Listing rows with their primary keys](https://sqlite-utils.datasette.io/en/stable/python-api.html#python-api-pks-and-rows-where). ([#240](https://github.com/simonw/sqlite-utils/issues/240)) - Fixed bug with *table.add_foreign_key()* against columns containing spaces. ([#238](https://github.com/simonw/sqlite-utils/issues/238)) - `table_or_view.drop(ignore=True)` option for avoiding errors if the table or view does not exist. ([#237](https://github.com/simonw/sqlite-utils/issues/237)) - `sqlite-utils drop-view --ignore` and `sqlite-utils drop-table --ignore` options. ([#237](https://github.com/simonw/sqlite-utils/issues/237)) - Fixed a bug with inserts of nested JSON containing non-ascii strings - thanks, Dylan Wu. ([#257](https://github.com/simonw/sqlite-utils/issues/257)) - Suggest `--alter` if an error occurs caused by a missing column. ([#259](https://github.com/simonw/sqlite-utils/issues/259)) - Support creating indexes with columns in descending order, see [API documentation](https://sqlite-utils.datasette.io/en/stable/python-api.html#python-api-create-index) and [CLI documentation](https://sqlite-utils.datasette.io/en/stable/cli.html#cli-create-index). ([#260](https://github.com/simonw/sqlite-utils/issues/260)) - Correctly handle CSV files that start with a UTF-8 BOM. ([#250](https://github.com/simonw/sqlite-utils/issues/250))",2021-05-29T05:49:59Z,"[""cli"", ""click"", ""datasette"", ""datasette-io"", ""datasette-tool"", ""python"", ""sqlite"", ""sqlite-database""]" 140912432,https://github.com/simonw/sqlite-utils,https://github.com/simonw/sqlite-utils/releases/tag/3.1,2020-12-13,"- New command: `sqlite-utils analyze-tables my.db` outputs useful information about the table columns in the database, such as the number of distinct values and how many rows are null. See [Analyzing tables](https://sqlite-utils.readthedocs.io/en/stable/cli.html#cli-analyze-tables) for documentation. ([#207](https://github.com/simonw/sqlite-utils/issues/207)) - New `table.analyze_column(column)` Python method used by the `analyze-tables` command - see [Analyzing a column](https://sqlite-utils.readthedocs.io/en/stable/python-api.html#python-api-analyze-column). - The `table.update()` method now correctly handles values that should be stored as JSON. Thanks, Andreas Madsack. ([#204](https://github.com/simonw/sqlite-utils/pull/204))",2020-12-13T07:31:40Z,"[""cli"", ""click"", ""datasette"", ""datasette-io"", ""datasette-tool"", ""python"", ""sqlite"", ""sqlite-database""]" 140912432,https://github.com/simonw/sqlite-utils,https://github.com/simonw/sqlite-utils/releases/tag/3.15.1,2021-08-10,"- Python library now includes type annotations on almost all of the methods, plus detailed docstrings describing each one. ([#311](https://github.com/simonw/sqlite-utils/issues/311)) - New [API Reference](https://sqlite-utils.datasette.io/en/stable/reference.html) documentation page, powered by those docstrings. - Fixed bug where `.add_foreign_keys()` failed to raise an error if called against a `View`. ([#313](https://github.com/simonw/sqlite-utils/issues/313)) - Fixed bug where `.delete_where()` returned a `[]` instead of returning `self` if called against a non-existant table. ([#315](https://github.com/simonw/sqlite-utils/issues/315))",2021-08-10T23:55:38Z,"[""cli"", ""click"", ""datasette"", ""datasette-io"", ""datasette-tool"", ""python"", ""sqlite"", ""sqlite-database""]" 140912432,https://github.com/simonw/sqlite-utils,https://github.com/simonw/sqlite-utils/releases/tag/3.24,2022-02-16,"- SpatiaLite helpers for the `sqlite-utils` command-line tool - thanks, Chris Amico. ([#398](https://github.com/simonw/sqlite-utils/issues/398)) - [sqlite-utils create-database](https://sqlite-utils.datasette.io/en/stable/cli.html#cli-create-database) `--init-spatialite` option for initializing SpatiaLite on a newly created database. - [sqlite-utils add-geometry-column](https://sqlite-utils.datasette.io/en/stable/cli.html#cli-spatialite) command for adding geometry columns. - [sqlite-utils create-spatial-index](https://sqlite-utils.datasette.io/en/stable/cli.html#cli-spatialite-indexes) command for adding spatial indexes. - `db[table].create(..., if_not_exists=True)` option for [creating a table](https://sqlite-utils.datasette.io/en/stable/python-api.html#python-api-explicit-create) only if it does not already exist. ([#397](https://github.com/simonw/sqlite-utils/issues/397)) - `Database(memory_name=""my_shared_database"")` parameter for creating a [named in-memory database](https://sqlite-utils.datasette.io/en/stable/python-api.html#python-api-connect) that can be shared between multiple connections. ([#405](https://github.com/simonw/sqlite-utils/issues/405)) - Documentation now describes [how to add a primary key to a rowid table](https://sqlite-utils.datasette.io/en/stable/cli.html#cli-transform-table-add-primary-key-to-rowid) using `sqlite-utils transform`. ([#403](https://github.com/simonw/sqlite-utils/issues/403))",2022-02-16T01:41:50Z,"[""cli"", ""click"", ""datasette"", ""datasette-io"", ""datasette-tool"", ""python"", ""sqlite"", ""sqlite-database""]" 140912432,https://github.com/simonw/sqlite-utils,https://github.com/simonw/sqlite-utils/releases/tag/2.14,2020-08-01,"- The [insert-files command](https://sqlite-utils.readthedocs.io/en/stable/cli.html#cli-insert-files) can now read from standard input: `cat dog.jpg | sqlite-utils insert-files dogs.db pics - --name=dog.jpg`. ([#127](https://github.com/simonw/sqlite-utils/issues/127)) - You can now specify a full-text search tokenizer using the new `tokenize=` parameter to [enable_fts()](https://sqlite-utils.readthedocs.io/en/stable/python-api.html#python-api-fts). This means you can enable Porter stemming on a table by running `db[""articles""].enable_fts([""headline"", ""body""], tokenize=""porter"")`. ([#130](https://github.com/simonw/sqlite-utils/issues/130)) - You can also set a custom tokenizer using the [sqlite-utils enable-fts](https://sqlite-utils.readthedocs.io/en/stable/cli.html#cli-fts) CLI command, via the new `--tokenize` option.",2020-08-01T21:00:31Z,"[""cli"", ""click"", ""datasette"", ""datasette-io"", ""datasette-tool"", ""python"", ""sqlite"", ""sqlite-database""]" 140912432,https://github.com/simonw/sqlite-utils,https://github.com/simonw/sqlite-utils/releases/tag/3.17,2021-08-24,"- The [sqlite-utils memory](https://sqlite-utils.datasette.io/en/stable/cli.html#cli-memory) command has a new `--analyze` option, which runs the equivalent of the [analyze-tables](https://sqlite-utils.datasette.io/en/stable/cli.html#cli-analyze-tables) command directly against the in-memory database created from the incoming CSV or JSON data. ([#320](https://github.com/simonw/sqlite-utils/issues/320)) - [sqlite-utils insert-files](https://sqlite-utils.datasette.io/en/stable/cli.html#cli-insert-files) now has the ability to insert file contents in to `TEXT` columns in addition to the default `BLOB`. Pass the `--text` option or use `content_text` as a column specifier. ([#319](https://github.com/simonw/sqlite-utils/issues/319))",2021-08-24T23:42:22Z,"[""cli"", ""click"", ""datasette"", ""datasette-io"", ""datasette-tool"", ""python"", ""sqlite"", ""sqlite-database""]" 140912432,https://github.com/simonw/sqlite-utils,https://github.com/simonw/sqlite-utils/releases/tag/3.19,2021-11-21,"- The [table.lookup() method](https://sqlite-utils.datasette.io/en/stable/python-api.html#python-api-lookup-tables) now accepts keyword arguments that match those on the underlying `table.insert()` method: `foreign_keys=`, `column_order=`, `not_null=`, `defaults=`, `extracts=`, `conversions=` and `columns=`. You can also now pass `pk=` to specify a different column name to use for the primary key. ([#342](https://github.com/simonw/sqlite-utils/issues/342))",2021-11-21T04:42:24Z,"[""cli"", ""click"", ""datasette"", ""datasette-io"", ""datasette-tool"", ""python"", ""sqlite"", ""sqlite-database""]" 140912432,https://github.com/simonw/sqlite-utils,https://github.com/simonw/sqlite-utils/releases/tag/3.3,2021-01-18,- The `table.m2m()` method now accepts an optional `alter=True` argument to specify that any missing columns should be added to the referenced table. See [Working with many-to-many relationships](https://sqlite-utils.datasette.io/en/stable/python-api.html#python-api-m2m). ([#222](https://github.com/simonw/sqlite-utils/issues/222)),2021-01-18T04:29:48Z,"[""cli"", ""click"", ""datasette"", ""datasette-io"", ""datasette-tool"", ""python"", ""sqlite"", ""sqlite-database""]" 140912432,https://github.com/simonw/sqlite-utils,https://github.com/simonw/sqlite-utils/releases/tag/3.16,2021-08-18,"- Type signatures added to more methods, including `table.resolve_foreign_keys()`, `db.create_table_sql()`, `db.create_table()` and `table.create()`. ([#314](https://github.com/simonw/sqlite-utils/issues/314)) - New `db.quote_fts(value)` method, see [Quoting characters for use in search](https://sqlite-utils.datasette.io/en/stable/python-api.html#python-api-quote-fts) - thanks, Mark Neumann. ([#246](https://github.com/simonw/sqlite-utils/issues/246)) - `table.search()` now accepts an optional `quote=True` parameter. ([#296](https://github.com/simonw/sqlite-utils/issues/296)) - CLI command `sqlite-utils search` now accepts a `--quote` option. ([#296](https://github.com/simonw/sqlite-utils/issues/296)) - Fixed bug where `--no-headers` and `--tsv` options to [sqlite-utils insert](https://sqlite-utils.datasette.io/en/stable/cli.html#cli-insert-csv-tsv) could not be used together. ([#295](https://github.com/simonw/sqlite-utils/issues/295)) - Various small improvements to [API reference](https://sqlite-utils.datasette.io/en/stable/reference.html#reference) documentation.",2021-08-18T22:37:55Z,"[""cli"", ""click"", ""datasette"", ""datasette-io"", ""datasette-tool"", ""python"", ""sqlite"", ""sqlite-database""]" 140912432,https://github.com/simonw/sqlite-utils,https://github.com/simonw/sqlite-utils/releases/tag/3.17.1,2021-09-22,"- [sqlite-utils memory](https://sqlite-utils.datasette.io/en/stable/cli.html#cli-memory) now works if files passed to it share the same file name. ([#325](https://github.com/simonw/sqlite-utils/issues/325)) - [sqlite-utils query](https://sqlite-utils.datasette.io/en/stable/cli.html#cli-query) now returns `[]` in JSON mode if no rows are returned. ([#328](https://github.com/simonw/sqlite-utils/issues/328))",2021-09-22T20:51:04Z,"[""cli"", ""click"", ""datasette"", ""datasette-io"", ""datasette-tool"", ""python"", ""sqlite"", ""sqlite-database""]" 140912432,https://github.com/simonw/sqlite-utils,https://github.com/simonw/sqlite-utils/releases/tag/2.16,2020-08-21,"- `--load-extension` option for `sqlite-utils query` for loading SQLite extensions. ([#134](https://github.com/simonw/sqlite-utils/issues/134)) - New `sqlite_utils.utils.find_spatialite()` function for finding SpatiaLite in common locations. ([#135](https://github.com/simonw/sqlite-utils/issues/135))",2020-08-21T21:05:51Z,"[""cli"", ""click"", ""datasette"", ""datasette-io"", ""datasette-tool"", ""python"", ""sqlite"", ""sqlite-database""]" 140912432,https://github.com/simonw/sqlite-utils,https://github.com/simonw/sqlite-utils/releases/tag/2.16.1,2020-08-28,"- `insert_all(..., alter=True)` now works for columns introduced after the first 100 records. Thanks, Simon Wiles! ([#139](https://github.com/simonw/sqlite-utils/issues/139)) - Continuous Integration is now powered by GitHub Actions. ([#143](https://github.com/simonw/sqlite-utils/issues/143))",2020-08-28T22:47:02Z,"[""cli"", ""click"", ""datasette"", ""datasette-io"", ""datasette-tool"", ""python"", ""sqlite"", ""sqlite-database""]" 140912432,https://github.com/simonw/sqlite-utils,https://github.com/simonw/sqlite-utils/releases/tag/3.4,2021-02-06,- `sqlite-utils insert --csv` now accepts optional `--delimiter` and `--quotechar` options. See [Alternative delimiters and quote characters](https://sqlite-utils.datasette.io/en/stable/cli.html#cli-insert-csv-tsv-delimiter). ([#223](https://github.com/simonw/sqlite-utils/issues/223)),2021-02-06T01:38:26Z,"[""cli"", ""click"", ""datasette"", ""datasette-io"", ""datasette-tool"", ""python"", ""sqlite"", ""sqlite-database""]" 140912432,https://github.com/simonw/sqlite-utils,https://github.com/simonw/sqlite-utils/releases/tag/3.15,2021-08-09,"- `sqlite-utils insert --flatten` option for [flattening nested JSON objects](https://sqlite-utils.datasette.io/en/stable/cli.html#cli-inserting-data-flatten) to create tables with column names like `topkey_nestedkey`. ([#310](https://github.com/simonw/sqlite-utils/issues/310)) - Fixed several spelling mistakes in the documentation, spotted [using codespell](https://til.simonwillison.net/python/codespell). - Errors that occur while using the `sqlite-utils` CLI tool now show the responsible SQL and query parameters, if possible. ([#309](https://github.com/simonw/sqlite-utils/issues/309))",2021-08-09T22:43:16Z,"[""cli"", ""click"", ""datasette"", ""datasette-io"", ""datasette-tool"", ""python"", ""sqlite"", ""sqlite-database""]" 140912432,https://github.com/simonw/sqlite-utils,https://github.com/simonw/sqlite-utils/releases/tag/3.5,2021-02-14,"- `sqlite-utils insert --sniff` option for detecting the delimiter and quote character used by a CSV file, see [Alternative delimiters and quote characters](https://sqlite-utils.datasette.io/en/stable/cli.html#cli-insert-csv-tsv-delimiter). ([#230](https://github.com/simonw/sqlite-utils/issues/230)) - The `table.rows_where()`, `table.search()` and `table.search_sql()` methods all now take optional `offset=` and `limit=` arguments. ([#231](https://github.com/simonw/sqlite-utils/issues/231)) - New `--no-headers` option for `sqlite-utils insert --csv` to handle CSV files that are missing the header row, see [CSV files without a header row](https://sqlite-utils.datasette.io/en/stable/cli.html#cli-insert-csv-tsv-no-header). ([#228](https://github.com/simonw/sqlite-utils/issues/228)) - Fixed bug where inserting data with extra columns in subsequent chunks would throw an error. Thanks [@nieuwenhoven](https://github.com/nieuwenhoven) for the fix. ([#234](https://github.com/simonw/sqlite-utils/issues/234)) - Fixed bug importing CSV files with columns containing more than 128KB of data. ([#229](https://github.com/simonw/sqlite-utils/issues/229)) - Test suite now runs in CI against Ubuntu, macOS and Windows. Thanks [@nieuwenhoven](https://github.com/nieuwenhoven) for the Windows test fixes. ([#232](https://github.com/simonw/sqlite-utils/issues/232))",2021-02-14T22:44:21Z,"[""cli"", ""click"", ""datasette"", ""datasette-io"", ""datasette-tool"", ""python"", ""sqlite"", ""sqlite-database""]" 140912432,https://github.com/simonw/sqlite-utils,https://github.com/simonw/sqlite-utils/releases/tag/3.20,2022-01-06,"- `sqlite-utils insert ... --lines` to insert the lines from a file into a table with a single `line` column, see [Inserting unstructured data with --lines and --text](https://sqlite-utils.datasette.io/en/stable/cli.html#cli-insert-unstructured). - `sqlite-utils insert ... --text` to insert the contents of the file into a table with a single `text` column and a single row. - `sqlite-utils insert ... --convert` allows a Python function to be provided that will be used to convert each row that is being inserted into the database. See [Applying conversions while inserting data](https://sqlite-utils.datasette.io/en/stable/cli.html#cli-insert-convert), including details on special behavior when combined with `--lines` and `--text`. ([#356](https://github.com/simonw/sqlite-utils/issues/356)) - `sqlite-utils convert` now accepts a code value of `-` to read code from standard input. ([#353](https://github.com/simonw/sqlite-utils/issues/353)) - `sqlite-utils convert` also now accepts code that defines a named `convert(value)` function, see [Converting data in columns](https://sqlite-utils.datasette.io/en/stable/cli.html#cli-convert). - `db.supports_strict` property showing if the database connection supports [SQLite strict tables](https://www.sqlite.org/stricttables.html). - `table.strict` property (see [.strict](https://sqlite-utils.datasette.io/en/stable/python-api.html#python-api-introspection-strict)) indicating if the table uses strict mode. ([#344](https://github.com/simonw/sqlite-utils/issues/344)) - Fixed bug where `sqlite-utils upsert ... --detect-types` ignored the `--detect-types` option. ([#362](https://github.com/simonw/sqlite-utils/issues/362))",2022-01-06T06:57:09Z,"[""cli"", ""click"", ""datasette"", ""datasette-io"", ""datasette-tool"", ""python"", ""sqlite"", ""sqlite-database""]" 140912432,https://github.com/simonw/sqlite-utils,https://github.com/simonw/sqlite-utils/releases/tag/3.13,2021-07-24,"- `sqlite-utils schema my.db table1 table2` command now accepts optional table names. ([#299](https://github.com/simonw/sqlite-utils/issues/299)) - `sqlite-utils memory --help` now describes the `--schema` option.",2021-07-24T22:17:47Z,"[""cli"", ""click"", ""datasette"", ""datasette-io"", ""datasette-tool"", ""python"", ""sqlite"", ""sqlite-database""]" 140912432,https://github.com/simonw/sqlite-utils,https://github.com/simonw/sqlite-utils/releases/tag/2.21,2020-09-24,"- `table.extract()` and `sqlite-utils extract` now apply much, much faster - one example operation reduced from twelve minutes to just four seconds! ([#172](https://github.com/simonw/sqlite-utils/issues/172)) - `sqlite-utils extract` no longer shows a progress bar, because it's fast enough not to need one. - New `column_order=` option for `table.transform()` which can be used to alter the order of columns in a table. ([#175](https://github.com/simonw/sqlite-utils/issues/175)) - `sqlite-utils transform --column-order=` option (with a `-o` shortcut) for changing column order. ([#176](https://github.com/simonw/sqlite-utils/issues/176)) - The `table.transform(drop_foreign_keys=)` parameter and the `sqlite-utils transform --drop-foreign-key` option have changed. They now accept just the name of the column rather than requiring all three of the column, other table and other column. This is technically a backwards-incompatible change but I chose not to bump the major version number because the transform feature is so new. ([#177](https://github.com/simonw/sqlite-utils/issues/177)) - The table `.disable_fts()`, `.rebuild_fts()`, `.delete()`, `.delete_where()` and `.add_missing_columns()` methods all now `return self`, which means they can be chained together with other table operations.",2020-09-24T16:45:44Z,"[""cli"", ""click"", ""datasette"", ""datasette-io"", ""datasette-tool"", ""python"", ""sqlite"", ""sqlite-database""]" 140912432,https://github.com/simonw/sqlite-utils,https://github.com/simonw/sqlite-utils/releases/tag/2.23,2020-10-28,"- `table.m2m(other_table, records)` method now takes any iterable, not just a list or tuple. Thanks, Adam Wolf. ([#189](https://github.com/simonw/sqlite-utils/pull/189)) - `sqlite-utils insert` now displays a progress bar for CSV or TSV imports. ([#173](https://github.com/simonw/sqlite-utils/issues/173)) - New `@db.register_function(deterministic=True)` option for registering deterministic SQLite functions in Python 3.8 or higher. ([#191](https://github.com/simonw/sqlite-utils/issues/191))",2020-10-28T21:38:54Z,"[""cli"", ""click"", ""datasette"", ""datasette-io"", ""datasette-tool"", ""python"", ""sqlite"", ""sqlite-database""]" 140912432,https://github.com/simonw/sqlite-utils,https://github.com/simonw/sqlite-utils/releases/tag/2.18,2020-09-08,"- `table.rebuild_fts()` method for rebuilding a FTS index, see [Rebuilding a full-text search table](https://sqlite-utils.readthedocs.io/en/stable/python-api.html#python-api-fts-rebuild). ([#155](https://github.com/simonw/sqlite-utils/issues/155)) - `sqlite-utils rebuild-fts data.db` command for rebuilding FTS indexes across all tables, or just specific tables. ([#155](https://github.com/simonw/sqlite-utils/issues/155)) - `table.optimize()` method no longer deletes junk rows from the `*_fts_docsize` table. This was added in 2.17 but it turns out running `table.rebuild_fts()` is a better solution to this problem. - Fixed a bug where rows with additional columns that are inserted after the first batch of records could cause an error due to breaking SQLite's maximum number of parameters. Thanks, Simon Wiles. ([#145](https://github.com/simonw/sqlite-utils/issues/145))",2020-09-08T23:39:21Z,"[""cli"", ""click"", ""datasette"", ""datasette-io"", ""datasette-tool"", ""python"", ""sqlite"", ""sqlite-database""]" 206156866,https://github.com/dogsheep/twitter-to-sqlite,https://github.com/dogsheep/twitter-to-sqlite/releases/tag/0.13,2019-10-30,- New `mentions-timeline` command (#26),2019-10-30T02:22:30Z,"[""datasette"", ""datasette-io"", ""datasette-tool"", ""dogsheep"", ""sqlite"", ""twitter"", ""twitter-api""]" 197431109,https://github.com/dogsheep/dogsheep-beta,https://github.com/dogsheep/dogsheep-beta/releases/tag/0.4a1,2020-09-03,"- Added `received` category. #10 - New `is_public` column. #11",2020-09-03T18:03:50Z,"[""datasette"", ""datasette-io"", ""datasette-plugin"", ""datasette-tool"", ""dogsheep"", ""search""]" 197431109,https://github.com/dogsheep/dogsheep-beta,https://github.com/dogsheep/dogsheep-beta/releases/tag/0.9a0,2020-09-20,"- Added by date, as part of developing a timeline view. #16",2020-09-20T23:37:48Z,"[""datasette"", ""datasette-io"", ""datasette-plugin"", ""datasette-tool"", ""dogsheep"", ""search""]" 206156866,https://github.com/dogsheep/twitter-to-sqlite,https://github.com/dogsheep/twitter-to-sqlite/releases/tag/0.21.2,2020-07-18,- Added changelog badge,2020-07-18T22:43:20Z,"[""datasette"", ""datasette-io"", ""datasette-tool"", ""dogsheep"", ""sqlite"", ""twitter"", ""twitter-api""]" 303218369,https://github.com/dogsheep/evernote-to-sqlite,https://github.com/dogsheep/evernote-to-sqlite/releases/tag/0.3,2021-02-11,"- Correctly handle entities in XHTML notes. [#9](https://github.com/dogsheep/evernote-to-sqlite/issues/9) - Fixed a bug importing ENEX files on Windows. Thanks, [dskrad](https://github.com/dskrad). [#11](https://github.com/dogsheep/evernote-to-sqlite/issues/11) ",2021-02-11T22:16:20Z,"[""datasette-io"", ""datasette-tool"", ""dogsheep"", ""evernote"", ""sqlite""]" 197431109,https://github.com/dogsheep/dogsheep-beta,https://github.com/dogsheep/dogsheep-beta/releases/tag/0.5,2020-09-04,- Custom template displays can now render a point on a map. #12,2020-09-04T01:46:16Z,"[""datasette"", ""datasette-io"", ""datasette-plugin"", ""datasette-tool"", ""dogsheep"", ""search""]" 140912432,https://github.com/simonw/sqlite-utils,https://github.com/simonw/sqlite-utils/releases/tag/2.14.1,2020-08-06,- Documentation improvements,2020-08-06T06:31:48Z,"[""cli"", ""click"", ""datasette"", ""datasette-io"", ""datasette-tool"", ""python"", ""sqlite"", ""sqlite-database""]"