html_url,issue_url,id,node_id,user,user_label,created_at,updated_at,author_association,body,reactions,issue,issue_label,performed_via_github_app https://github.com/simonw/datasette/issues/419#issuecomment-473708724,https://api.github.com/repos/simonw/datasette/issues/419,473708724,MDEyOklzc3VlQ29tbWVudDQ3MzcwODcyNA==,9599,simonw,2019-03-17T19:55:21Z,2019-05-16T03:35:59Z,OWNER,"Thinking about this further: I think I may have made a mistake establishing ""immutable"" as the default mode for databases opened by Datasette. What would it look like if files were NOT opened in immutable mode by default? Maybe the command to start Datasette looks like this: datasette mutable1.db mutable2.db --immutable=this_is_immutable.db --immutable=this_is_immutable2.db So regular file arguments are treated as mutable (and opened in `?mode=ro`) while file arguments passed using the new `--immutable` option are opened in immutable mode. The `-i` shortcut has not yet been taken, so this could be abbreviated to: datasette mutable1.db mutable2.db -i this_is_immutable.db -i this_is_immutable2.db","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",421551434,"Default to opening files in mutable mode, special option for immutable files", https://github.com/simonw/datasette/issues/419#issuecomment-473726527,https://api.github.com/repos/simonw/datasette/issues/419,473726527,MDEyOklzc3VlQ29tbWVudDQ3MzcyNjUyNw==,9599,simonw,2019-03-17T23:28:41Z,2019-05-16T14:54:50Z,OWNER,"I've added the `-i` option, so this now works: datasette -i fixtures.db This feature is incomplete though. Some extra changes I need to make: * The `?_hash=1` and `--config hash_urls:1` options (introduced in #418) should only work for immutable databases #471 * Would be useful if there was a debug screen that could show which databases were mounted as mutable v.s. immutable - maybe a `/-/databases` page? - #470 * Need to rework how `.inspect()` works, see #420 * Documentation is needed #421 ","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",421551434,"Default to opening files in mutable mode, special option for immutable files", https://github.com/simonw/datasette/issues/467#issuecomment-492883561,https://api.github.com/repos/simonw/datasette/issues/467,492883561,MDEyOklzc3VlQ29tbWVudDQ5Mjg4MzU2MQ==,9599,simonw,2019-05-16T01:40:09Z,2019-05-16T01:40:09Z,OWNER,"I'm setting X to 30 because the fixtures database currently has 26 tables (22 visible, 4 hidden) and I want to display counts for it.","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",444711254,Index page row counts only for DBs with < 30 tables (10ms count limit per table), https://github.com/simonw/datasette/issues/467#issuecomment-492898241,https://api.github.com/repos/simonw/datasette/issues/467,492898241,MDEyOklzc3VlQ29tbWVudDQ5Mjg5ODI0MQ==,9599,simonw,2019-05-16T03:02:27Z,2019-05-16T03:02:27Z,OWNER,"I'm going to be lazy and skip the unit test for this, because I don't currently have a neat way of mocking a SQL interrupted exception to simulate a query taking too long (at least for these counts).","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",444711254,Index page row counts only for DBs with < 30 tables (10ms count limit per table), https://github.com/simonw/datasette/issues/460#issuecomment-492898595,https://api.github.com/repos/simonw/datasette/issues/460,492898595,MDEyOklzc3VlQ29tbWVudDQ5Mjg5ODU5NQ==,9599,simonw,2019-05-16T03:04:29Z,2019-05-16T03:04:29Z,OWNER,One last thing before I close this: sort tables by number of inbound/outbound foreign keys.,"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",443020810,Design changes to homepage to support mutable files, https://github.com/simonw/datasette/issues/460#issuecomment-492899100,https://api.github.com/repos/simonw/datasette/issues/460,492899100,MDEyOklzc3VlQ29tbWVudDQ5Mjg5OTEwMA==,9599,simonw,2019-05-16T03:07:41Z,2019-05-16T03:07:41Z,OWNER,"I'm going to sort by row counts first, but if row counts aren't available I'll fall back to number of inbound/outbound foreign keys. To make unit testing easier, I'll accept an undocumented ?_sort=relationships parameter","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",443020810,Design changes to homepage to support mutable files, https://github.com/simonw/datasette/issues/419#issuecomment-492903398,https://api.github.com/repos/simonw/datasette/issues/419,492903398,MDEyOklzc3VlQ29tbWVudDQ5MjkwMzM5OA==,9599,simonw,2019-05-16T03:33:01Z,2019-05-16T03:33:01Z,OWNER,"@russss sorry I only just spotted your comment here. I think I have an alternative suggestion for what you need to do here. It sounds to me like you need to calculate a specific piece of information against a specific database. Instead of doing this in inspect, how about having a separate tool which runs this once against the database file and writes the result into a database file there? I've been thinking about this pattern a bit as part of the sqlite-utils work I've been doing. It's already something that's needed for SQLite FTS support - it's no good just creating a FTS index, you have to populate it as well. In sqlite-utils world you do that like this: https://sqlite-utils.readthedocs.io/en/latest/cli.html#configuring-full-text-search $ sqlite-utils enable-fts mydb.db documents title summary But then later if you've inserted new records you have to call this: $ sqlite-utils populate-fts mydb.db documents title summary So one option here could be for `datasette-geo` to know to look for a special `datasette_geo_bounding_box` database table and, if it's missing, to calculate at runtime (probably once on startup and then cache it). Another option: Datasette now has an option to open a database file in ""immutable"" mode, using `datasette -i mydatabase.db`. When you do that we calculate counts on startup - and we'll also be able to load counts from the `inspect-data.json` file (that's pretty much all that will be in there). I'm open to making this available as a plugin hook - all kinds of optimizations could be run against these `-i` databases. It would essentially be what we have with inspect today but just for databases opened in that specific mode.","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",421551434,"Default to opening files in mutable mode, special option for immutable files", https://github.com/simonw/datasette/issues/460#issuecomment-492903581,https://api.github.com/repos/simonw/datasette/issues/460,492903581,MDEyOklzc3VlQ29tbWVudDQ5MjkwMzU4MQ==,9599,simonw,2019-05-16T03:34:08Z,2019-05-16T03:34:08Z,OWNER,Demo of above: https://latest.datasette.io/?_sort=relationships compared to https://latest.datasette.io/,"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",443020810,Design changes to homepage to support mutable files, https://github.com/simonw/datasette/issues/465#issuecomment-492904704,https://api.github.com/repos/simonw/datasette/issues/465,492904704,MDEyOklzc3VlQ29tbWVudDQ5MjkwNDcwNA==,9599,simonw,2019-05-16T03:41:27Z,2019-05-16T03:41:27Z,OWNER,"The main use-case for this endpoint now is going to be [Datasette Registry](https://github.com/simonw/datasette-registry) (which really needs some more love). That tool needs to be able to query a Datasette and find out: * What tables are available * What their columns are * Ideally, their row counts A single `/-/inspect` call is no good here because with Datasette Library #417 I'm going to be encouraging MUCH larger Datasette instances, potentially with hundreds of attached databases and thousands of attached tables. So pagination will be essential. Maybe a smarter approach will be the older idea of having a separate inspect for each database (and maybe each table): * `/mydatabase/-/inspect` * `/mydatabase/mytable/-/inspect` Either way, I'm going to decouple this from milestone 0.28.","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",443038584,Decide what to do about /-/inspect, https://github.com/simonw/datasette/issues/464#issuecomment-492917925,https://api.github.com/repos/simonw/datasette/issues/464,492917925,MDEyOklzc3VlQ29tbWVudDQ5MjkxNzkyNQ==,9599,simonw,2019-05-16T05:04:35Z,2019-05-16T05:04:35Z,OWNER,https://datasette.readthedocs.io/en/latest/getting_started.html#glitch,"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",443034218,Add Glitch to Getting Started docs section, https://github.com/simonw/datasette/issues/471#issuecomment-493102841,https://api.github.com/repos/simonw/datasette/issues/471,493102841,MDEyOklzc3VlQ29tbWVudDQ5MzEwMjg0MQ==,9599,simonw,2019-05-16T14:56:50Z,2019-05-16T15:10:11Z,OWNER,This is a good opportunity to add some missing test coverage for this feature.,"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",445003029,?_hash=1 and --config hash_urls:1 should only work for immutable databases, https://github.com/simonw/datasette/issues/418#issuecomment-493109347,https://api.github.com/repos/simonw/datasette/issues/418,493109347,MDEyOklzc3VlQ29tbWVudDQ5MzEwOTM0Nw==,9599,simonw,2019-05-16T15:12:26Z,2019-05-16T15:12:26Z,OWNER,I'm ready to close this now thanks to fixing #471 ,"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",421548881,Hashed URLs should be optional, https://github.com/simonw/datasette/issues/419#issuecomment-493110184,https://api.github.com/repos/simonw/datasette/issues/419,493110184,MDEyOklzc3VlQ29tbWVudDQ5MzExMDE4NA==,9599,simonw,2019-05-16T15:14:31Z,2019-05-16T15:14:31Z,OWNER,"This is done bar the documentation, which is tracked in #421 ","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",421551434,"Default to opening files in mutable mode, special option for immutable files",