issue_comments
10,495 rows sorted by user
This data as json, CSV (advanced)
issue >30
- Redesign default .json format 55
- Show column metadata plus links for foreign keys on arbitrary query results 51
- ?_extra= support (draft) 49
- Rethink how .ext formats (v.s. ?_format=) works before 1.0 48
- Upgrade to CodeMirror 6, add SQL autocomplete 48
- JavaScript plugin hooks mechanism similar to pluggy 47
- Updated Dockerfile with SpatiaLite version 5.0 45
- Complete refactor of TableView and table.html template 45
- Port Datasette to ASGI 42
- Authentication (and permissions) as a core concept 40
- invoke_startup() is not run in some conditions, e.g. gunicorn/uvicorn workers, breaking lots of things 36
- Deploy a live instance of demos/apache-proxy 34
- await datasette.client.get(path) mechanism for executing internal requests 33
- Maintain an in-memory SQLite table of connected databases and their tables 32
- Research: demonstrate if parallel SQL queries are worthwhile 32
- Ability to sort (and paginate) by column 31
- Server hang on parallel execution of queries to named in-memory databases 31
- Default API token authentication mechanism 30
- Port as many tests as possible to async def tests against ds_client 29
- link_or_copy_directory() error - Invalid cross-device link 28
- Add ?_extra= mechanism for requesting extra properties in JSON 27
- Export to CSV 27
- base_url configuration setting 27
- Documentation with recommendations on running Datasette in production without using Docker 27
- Optimize all those calls to index_list and foreign_key_list 27
- Support cross-database joins 26
- Ability for a canned query to write to the database 26
- table.transform() method for advanced alter table 26
- New pattern for views that return either JSON or HTML, available for plugins 26
- Proof of concept for Datasette on AWS Lambda with EFS 25
- …
created_at (date) >30 ✖
- 2021-03-22 66
- 2021-11-19 60
- 2022-11-16 59
- 2020-10-15 52
- 2020-09-22 51
- 2023-08-18 51
- 2020-10-30 49
- 2022-10-26 47
- 2022-03-21 46
- 2023-09-21 44
- 2020-12-18 43
- 2020-06-09 42
- 2022-10-27 42
- 2022-12-13 42
- 2020-06-18 41
- 2022-10-25 41
- 2020-10-20 40
- 2022-01-09 40
- 2022-06-14 40
- 2020-05-27 39
- 2021-11-16 39
- 2020-12-30 38
- 2021-12-16 38
- 2022-12-15 37
- 2023-03-08 37
- 2020-10-09 36
- 2021-11-20 36
- 2022-01-20 36
- 2022-03-19 36
- 2023-07-22 36
- …
reactions 23 ✖
- {"total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} 10,027
- {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} 212
- {"total_count": 1, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 1, "rocket": 0, "eyes": 0} 41
- {"total_count": 1, "+1": 0, "-1": 0, "laugh": 0, "hooray": 1, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} 37
- {"total_count": 2, "+1": 2, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} 20
- {"total_count": 1, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 1, "eyes": 0} 13
- {"total_count": 1, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 1} 10
- {"total_count": 1, "+1": 0, "-1": 0, "laugh": 1, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} 7
- {"total_count": 3, "+1": 3, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} 6
- {"total_count": 2, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 2, "rocket": 0, "eyes": 0} 3
- {"total_count": 2, "+1": 0, "-1": 0, "laugh": 0, "hooray": 2, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} 3
- {"total_count": 2, "+1": 1, "-1": 0, "laugh": 0, "hooray": 1, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} 3
- {"total_count": 2, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 1, "rocket": 0, "eyes": 0} 2
- {"total_count": 3, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 3, "rocket": 0, "eyes": 0} 2
- {"total_count": 1, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 1, "heart": 0, "rocket": 0, "eyes": 0} 1
- {"total_count": 15, "+1": 7, "-1": 0, "laugh": 1, "hooray": 1, "confused": 0, "heart": 5, "rocket": 1, "eyes": 0} 1
- {"total_count": 2, "+1": 0, "-1": 0, "laugh": 1, "hooray": 0, "confused": 0, "heart": 0, "rocket": 1, "eyes": 0} 1
- {"total_count": 2, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 1} 1
- {"total_count": 2, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 1, "eyes": 0} 1
- {"total_count": 3, "+1": 0, "-1": 0, "laugh": 0, "hooray": 3, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} 1
- {"total_count": 4, "+1": 4, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} 1
- {"total_count": 5, "+1": 2, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 3, "eyes": 0} 1
- {"total_count": 5, "+1": 5, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} 1
id | html_url | issue_url | node_id | user ▼ | created_at | updated_at | author_association | body | reactions | issue | performed_via_github_app |
---|---|---|---|---|---|---|---|---|---|---|---|
343281876 | https://github.com/simonw/datasette/issues/49#issuecomment-343281876 | https://api.github.com/repos/simonw/datasette/issues/49 | MDEyOklzc3VlQ29tbWVudDM0MzI4MTg3Ng== | simonw 9599 | 2017-11-09T20:30:42Z | 2017-11-09T20:30:42Z | OWNER | How about datasette? |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Pick a name 272661336 | |
343551356 | https://github.com/simonw/datasette/issues/49#issuecomment-343551356 | https://api.github.com/repos/simonw/datasette/issues/49 | MDEyOklzc3VlQ29tbWVudDM0MzU1MTM1Ng== | simonw 9599 | 2017-11-10T18:33:22Z | 2017-11-10T18:33:22Z | OWNER | I'm going with datasette. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Pick a name 272661336 | |
343557070 | https://github.com/simonw/datasette/issues/52#issuecomment-343557070 | https://api.github.com/repos/simonw/datasette/issues/52 | MDEyOklzc3VlQ29tbWVudDM0MzU1NzA3MA== | simonw 9599 | 2017-11-10T18:57:47Z | 2017-11-10T18:57:47Z | OWNER | https://file.io/ looks like it could be good for this. It's been around since 2015, and lets you upload a temporary file which can be downloaded once.
Downloading from that URL serves up the data with a
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Solution for temporarily uploading DB so it can be built by docker 273026602 | |
343581130 | https://github.com/simonw/datasette/issues/20#issuecomment-343581130 | https://api.github.com/repos/simonw/datasette/issues/20 | MDEyOklzc3VlQ29tbWVudDM0MzU4MTEzMA== | simonw 9599 | 2017-11-10T20:44:38Z | 2017-11-10T20:44:38Z | OWNER | I'm going to handle this a different way. I'm going to support a local history of your own queries stored in localStorage, but if you want to share a query you have to do it with a URL. If people really want canned query support, they can do that using custom templates - see #12 - or by adding views to their database before they publish it. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Config file with support for defining canned queries 267759136 | |
343581332 | https://github.com/simonw/datasette/issues/21#issuecomment-343581332 | https://api.github.com/repos/simonw/datasette/issues/21 | MDEyOklzc3VlQ29tbWVudDM0MzU4MTMzMg== | simonw 9599 | 2017-11-10T20:45:42Z | 2017-11-10T20:45:42Z | OWNER | I'm not going to use Sanic's mechanism for this. I'll use arguments passed to my cli instead. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Use Sanic configuration mechanism 267769034 | |
343643332 | https://github.com/simonw/datasette/issues/16#issuecomment-343643332 | https://api.github.com/repos/simonw/datasette/issues/16 | MDEyOklzc3VlQ29tbWVudDM0MzY0MzMzMg== | simonw 9599 | 2017-11-11T06:00:04Z | 2017-11-11T06:00:04Z | OWNER | Here's what a table looks like now at a smaller screen size: |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Default HTML/CSS needs to look reasonable and be responsive 267726219 | |
343644891 | https://github.com/simonw/datasette/issues/54#issuecomment-343644891 | https://api.github.com/repos/simonw/datasette/issues/54 | MDEyOklzc3VlQ29tbWVudDM0MzY0NDg5MQ== | simonw 9599 | 2017-11-11T06:39:54Z | 2017-11-11T06:39:54Z | OWNER | I can detect something is a view like this:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Views should not attempt to link to records / use rowids 273121803 | |
343644976 | https://github.com/simonw/datasette/issues/26#issuecomment-343644976 | https://api.github.com/repos/simonw/datasette/issues/26 | MDEyOklzc3VlQ29tbWVudDM0MzY0NDk3Ng== | simonw 9599 | 2017-11-11T06:42:23Z | 2017-11-11T06:42:23Z | OWNER | Simplest version of this:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Command line tool for uploading one or more DBs to Now 267861210 | |
343645249 | https://github.com/simonw/datasette/issues/26#issuecomment-343645249 | https://api.github.com/repos/simonw/datasette/issues/26 | MDEyOklzc3VlQ29tbWVudDM0MzY0NTI0OQ== | simonw 9599 | 2017-11-11T06:48:59Z | 2017-11-11T06:48:59Z | OWNER | Doing this works:
That creates a link in tmp-blah - and then when I delete that entire directory like so:
The original database is not deleted, just the link. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Command line tool for uploading one or more DBs to Now 267861210 | |
343645327 | https://github.com/simonw/datasette/issues/26#issuecomment-343645327 | https://api.github.com/repos/simonw/datasette/issues/26 | MDEyOklzc3VlQ29tbWVudDM0MzY0NTMyNw== | simonw 9599 | 2017-11-11T06:51:16Z | 2017-11-11T06:51:16Z | OWNER | I can create the temporary directory like so:
And then to delete it all:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Command line tool for uploading one or more DBs to Now 267861210 | |
343646740 | https://github.com/simonw/datasette/issues/40#issuecomment-343646740 | https://api.github.com/repos/simonw/datasette/issues/40 | MDEyOklzc3VlQ29tbWVudDM0MzY0Njc0MA== | simonw 9599 | 2017-11-11T07:27:33Z | 2017-11-11T07:27:33Z | OWNER | I'm happy with this now that I've implemented the publish command in #26 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Implement command-line tool interface 268470572 | |
343647102 | https://github.com/simonw/datasette/issues/47#issuecomment-343647102 | https://api.github.com/repos/simonw/datasette/issues/47 | MDEyOklzc3VlQ29tbWVudDM0MzY0NzEwMg== | simonw 9599 | 2017-11-11T07:36:00Z | 2017-11-11T07:36:00Z | OWNER | http://2016.padjo.org/tutorials/data-primer-census-acs1-demographics/ has a sqlite database: http://2016.padjo.org/files/data/starterpack/census-acs-1year/acs-1-year-2015.sqlite I tested this by deploying it here: https://datasette-fewuggrvwr.now.sh/ |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Create neat example database 271831408 | |
343647300 | https://github.com/simonw/datasette/issues/16#issuecomment-343647300 | https://api.github.com/repos/simonw/datasette/issues/16 | MDEyOklzc3VlQ29tbWVudDM0MzY0NzMwMA== | simonw 9599 | 2017-11-11T07:41:19Z | 2017-11-11T07:53:09Z | OWNER | Still needed:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Default HTML/CSS needs to look reasonable and be responsive 267726219 | |
343675165 | https://github.com/simonw/datasette/issues/14#issuecomment-343675165 | https://api.github.com/repos/simonw/datasette/issues/14 | MDEyOklzc3VlQ29tbWVudDM0MzY3NTE2NQ== | simonw 9599 | 2017-11-11T16:07:10Z | 2017-11-11T16:07:10Z | OWNER | The plugin system can also allow alternative providers for the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Datasette Plugins 267707940 | |
343676574 | https://github.com/simonw/datasette/issues/59#issuecomment-343676574 | https://api.github.com/repos/simonw/datasette/issues/59 | MDEyOklzc3VlQ29tbWVudDM0MzY3NjU3NA== | simonw 9599 | 2017-11-11T16:29:48Z | 2017-11-11T16:29:48Z | OWNER | See also #14 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
datasette publish hyper 273157085 | |
343683566 | https://github.com/simonw/datasette/issues/60#issuecomment-343683566 | https://api.github.com/repos/simonw/datasette/issues/60 | MDEyOklzc3VlQ29tbWVudDM0MzY4MzU2Ng== | simonw 9599 | 2017-11-11T18:12:24Z | 2017-11-11T18:12:24Z | OWNER | I’m going to solve this by making it an optional argument you can pass to the serve command. Then the Dockerfile can still build and use it but it won’t interfere with tests or dev. If argument is not passed, we will calculate hashes on startup and calculate table row counts on demand. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Rethink how metadata is generated and stored 273163905 | |
343690060 | https://github.com/simonw/datasette/issues/47#issuecomment-343690060 | https://api.github.com/repos/simonw/datasette/issues/47 | MDEyOklzc3VlQ29tbWVudDM0MzY5MDA2MA== | simonw 9599 | 2017-11-11T19:56:08Z | 2017-11-11T19:56:08Z | OWNER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Create neat example database 271831408 | |
343691342 | https://github.com/simonw/datasette/issues/16#issuecomment-343691342 | https://api.github.com/repos/simonw/datasette/issues/16 | MDEyOklzc3VlQ29tbWVudDM0MzY5MTM0Mg== | simonw 9599 | 2017-11-11T20:19:07Z | 2017-11-11T20:19:07Z | OWNER | Closing this, opening a fresh ticket for the navigation stuff. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Default HTML/CSS needs to look reasonable and be responsive 267726219 | |
343697291 | https://github.com/simonw/datasette/issues/63#issuecomment-343697291 | https://api.github.com/repos/simonw/datasette/issues/63 | MDEyOklzc3VlQ29tbWVudDM0MzY5NzI5MQ== | simonw 9599 | 2017-11-11T22:05:06Z | 2017-11-11T22:11:49Z | OWNER | I'm going to bundle sql and sql_params together into a query nested object like this:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Review design of JSON output 273174447 | |
343698214 | https://github.com/simonw/datasette/issues/50#issuecomment-343698214 | https://api.github.com/repos/simonw/datasette/issues/50 | MDEyOklzc3VlQ29tbWVudDM0MzY5ODIxNA== | simonw 9599 | 2017-11-11T22:23:21Z | 2017-11-11T22:23:21Z | OWNER | I'm closing #50 - more tests will be added in the future, but the framework is neatly in place for them now. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Unit tests against application itself 272694136 | |
343699115 | https://github.com/simonw/datasette/issues/53#issuecomment-343699115 | https://api.github.com/repos/simonw/datasette/issues/53 | MDEyOklzc3VlQ29tbWVudDM0MzY5OTExNQ== | simonw 9599 | 2017-11-11T22:41:38Z | 2017-11-11T22:41:38Z | OWNER | This needs to incorporate a sensible way of presenting custom SQL query results too. And let's get a textarea in there for executing SQL while we're at it. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Implement a better database index page 273054652 | |
343705966 | https://github.com/simonw/datasette/issues/47#issuecomment-343705966 | https://api.github.com/repos/simonw/datasette/issues/47 | MDEyOklzc3VlQ29tbWVudDM0MzcwNTk2Ng== | simonw 9599 | 2017-11-12T01:00:20Z | 2017-11-12T01:00:20Z | OWNER | https://github.com/fivethirtyeight/data has a ton of CSVs |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Create neat example database 271831408 | |
343707624 | https://github.com/simonw/datasette/issues/53#issuecomment-343707624 | https://api.github.com/repos/simonw/datasette/issues/53 | MDEyOklzc3VlQ29tbWVudDM0MzcwNzYyNA== | simonw 9599 | 2017-11-12T01:47:45Z | 2017-11-12T01:47:45Z | OWNER | Split the SQL thing out into #65 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Implement a better database index page 273054652 | |
343707676 | https://github.com/simonw/datasette/issues/53#issuecomment-343707676 | https://api.github.com/repos/simonw/datasette/issues/53 | MDEyOklzc3VlQ29tbWVudDM0MzcwNzY3Ng== | simonw 9599 | 2017-11-12T01:49:07Z | 2017-11-12T01:49:07Z | OWNER | Here's the new design: Also lists views at the bottom (refs #54): |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Implement a better database index page 273054652 | |
343708447 | https://github.com/simonw/datasette/issues/42#issuecomment-343708447 | https://api.github.com/repos/simonw/datasette/issues/42 | MDEyOklzc3VlQ29tbWVudDM0MzcwODQ0Nw== | simonw 9599 | 2017-11-12T02:12:15Z | 2017-11-12T02:12:15Z | OWNER | I ditched the metadata file concept. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Homepage UI for editing metadata file 268591332 | |
343709217 | https://github.com/simonw/datasette/issues/65#issuecomment-343709217 | https://api.github.com/repos/simonw/datasette/issues/65 | MDEyOklzc3VlQ29tbWVudDM0MzcwOTIxNw== | simonw 9599 | 2017-11-12T02:36:37Z | 2017-11-12T02:36:37Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Re-implement ?sql= mode 273191608 | ||
343715915 | https://github.com/simonw/datasette/issues/25#issuecomment-343715915 | https://api.github.com/repos/simonw/datasette/issues/25 | MDEyOklzc3VlQ29tbWVudDM0MzcxNTkxNQ== | simonw 9599 | 2017-11-12T06:08:28Z | 2017-11-12T06:08:28Z | OWNER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Endpoint that returns SQL ready to be piped into DB 267857622 | |
343752404 | https://github.com/simonw/datasette/issues/42#issuecomment-343752404 | https://api.github.com/repos/simonw/datasette/issues/42 | MDEyOklzc3VlQ29tbWVudDM0Mzc1MjQwNA== | simonw 9599 | 2017-11-12T17:20:10Z | 2017-11-12T17:20:10Z | OWNER | Re-opening this - I've decided to bring back this concept, see #68 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Homepage UI for editing metadata file 268591332 | |
343752579 | https://github.com/simonw/datasette/issues/69#issuecomment-343752579 | https://api.github.com/repos/simonw/datasette/issues/69 | MDEyOklzc3VlQ29tbWVudDM0Mzc1MjU3OQ== | simonw 9599 | 2017-11-12T17:22:39Z | 2017-11-12T17:22:39Z | OWNER | By default I'll allow LIMIT and OFFSET up to a maximum of X (where X is let's say 50,000 to start with, but can be custom configured to a larger number or set to None for no limit). |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Enforce pagination (or at least limits) for arbitrary custom SQL 273248366 | |
343752683 | https://github.com/simonw/datasette/issues/66#issuecomment-343752683 | https://api.github.com/repos/simonw/datasette/issues/66 | MDEyOklzc3VlQ29tbWVudDM0Mzc1MjY4Mw== | simonw 9599 | 2017-11-12T17:24:05Z | 2017-11-12T17:24:21Z | OWNER | Maybe SQL views should have their own Sanic view class ( |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Show table SQL on table page 273191806 | |
343753999 | https://github.com/simonw/datasette/issues/68#issuecomment-343753999 | https://api.github.com/repos/simonw/datasette/issues/68 | MDEyOklzc3VlQ29tbWVudDM0Mzc1Mzk5OQ== | simonw 9599 | 2017-11-12T17:45:21Z | 2017-11-12T19:38:33Z | OWNER | For initial launch, I could just support this as some optional command line arguments you pass to the publish command:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Support for title/source/license metadata 273247186 | |
343754058 | https://github.com/simonw/datasette/issues/68#issuecomment-343754058 | https://api.github.com/repos/simonw/datasette/issues/68 | MDEyOklzc3VlQ29tbWVudDM0Mzc1NDA1OA== | simonw 9599 | 2017-11-12T17:46:13Z | 2017-11-12T17:46:13Z | OWNER | I’m going to store this stuff in a file called metadata.json and move the existing automatically generated metadata to a file called build.json |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Support for title/source/license metadata 273247186 | |
343769692 | https://github.com/simonw/datasette/issues/57#issuecomment-343769692 | https://api.github.com/repos/simonw/datasette/issues/57 | MDEyOklzc3VlQ29tbWVudDM0Mzc2OTY5Mg== | simonw 9599 | 2017-11-12T21:32:36Z | 2017-11-12T21:32:36Z | OWNER | I have created a Docker Hub public repository for this: https://hub.docker.com/r/simonwillison/datasette/ |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Ship a Docker image of the whole thing 273127694 | |
343780039 | https://github.com/simonw/datasette/issues/69#issuecomment-343780039 | https://api.github.com/repos/simonw/datasette/issues/69 | MDEyOklzc3VlQ29tbWVudDM0Mzc4MDAzOQ== | simonw 9599 | 2017-11-13T00:05:27Z | 2017-11-13T00:05:27Z | OWNER | I think the only safe way to do this is using SQLite |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Enforce pagination (or at least limits) for arbitrary custom SQL 273248366 | |
343780141 | https://github.com/simonw/datasette/issues/71#issuecomment-343780141 | https://api.github.com/repos/simonw/datasette/issues/71 | MDEyOklzc3VlQ29tbWVudDM0Mzc4MDE0MQ== | simonw 9599 | 2017-11-13T00:06:52Z | 2017-11-13T00:06:52Z | OWNER | I've registered datasettes.com as a domain name for doing this. Now setting it up so Cloudflare and Now can serve content from it. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Set up some example datasets on a Cloudflare-backed domain 273278840 | |
343780539 | https://github.com/simonw/datasette/issues/71#issuecomment-343780539 | https://api.github.com/repos/simonw/datasette/issues/71 | MDEyOklzc3VlQ29tbWVudDM0Mzc4MDUzOQ== | simonw 9599 | 2017-11-13T00:13:29Z | 2017-11-13T00:19:46Z | OWNER | https://zeit.co/docs/features/dns is docs
I had to set up a custom TXT record on |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Set up some example datasets on a Cloudflare-backed domain 273278840 | |
343780671 | https://github.com/simonw/datasette/issues/71#issuecomment-343780671 | https://api.github.com/repos/simonw/datasette/issues/71 | MDEyOklzc3VlQ29tbWVudDM0Mzc4MDY3MQ== | simonw 9599 | 2017-11-13T00:15:21Z | 2017-11-13T00:17:37Z | OWNER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Set up some example datasets on a Cloudflare-backed domain 273278840 | |
343780814 | https://github.com/simonw/datasette/issues/71#issuecomment-343780814 | https://api.github.com/repos/simonw/datasette/issues/71 | MDEyOklzc3VlQ29tbWVudDM0Mzc4MDgxNA== | simonw 9599 | 2017-11-13T00:17:50Z | 2017-11-13T00:18:19Z | OWNER | Achieved those redirects using Cloudflare "page rules": https://www.cloudflare.com/a/page-rules/datasettes.com |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Set up some example datasets on a Cloudflare-backed domain 273278840 | |
343781030 | https://github.com/simonw/datasette/issues/71#issuecomment-343781030 | https://api.github.com/repos/simonw/datasette/issues/71 | MDEyOklzc3VlQ29tbWVudDM0Mzc4MTAzMA== | simonw 9599 | 2017-11-13T00:21:05Z | 2017-11-13T02:09:32Z | OWNER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Set up some example datasets on a Cloudflare-backed domain 273278840 | |
343788581 | https://github.com/simonw/datasette/issues/71#issuecomment-343788581 | https://api.github.com/repos/simonw/datasette/issues/71 | MDEyOklzc3VlQ29tbWVudDM0Mzc4ODU4MQ== | simonw 9599 | 2017-11-13T01:48:17Z | 2017-11-13T01:48:17Z | OWNER | I had to add a rule like this to get letsencrypt certificates on now.sh working: https://github.com/zeit/now-cli/issues/188#issuecomment-270105052 I also have to flip this switch off every time I want to add a new alias: |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Set up some example datasets on a Cloudflare-backed domain 273278840 | |
343788780 | https://github.com/simonw/datasette/issues/71#issuecomment-343788780 | https://api.github.com/repos/simonw/datasette/issues/71 | MDEyOklzc3VlQ29tbWVudDM0Mzc4ODc4MA== | simonw 9599 | 2017-11-13T01:50:01Z | 2017-11-13T01:50:01Z | OWNER | Added another page rule in order to get Cloudflare to always obey cache headers sent by the server: |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Set up some example datasets on a Cloudflare-backed domain 273278840 | |
343788817 | https://github.com/simonw/datasette/issues/71#issuecomment-343788817 | https://api.github.com/repos/simonw/datasette/issues/71 | MDEyOklzc3VlQ29tbWVudDM0Mzc4ODgxNw== | simonw 9599 | 2017-11-13T01:50:27Z | 2017-11-13T01:50:27Z | OWNER | https://fivethirtyeight.datasettes.com/ is now up and running. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Set up some example datasets on a Cloudflare-backed domain 273278840 | |
343789162 | https://github.com/simonw/datasette/issues/71#issuecomment-343789162 | https://api.github.com/repos/simonw/datasette/issues/71 | MDEyOklzc3VlQ29tbWVudDM0Mzc4OTE2Mg== | simonw 9599 | 2017-11-13T01:53:29Z | 2017-11-13T01:53:29Z | OWNER | ``` $ curl -i 'https://fivethirtyeight.datasettes.com/fivethirtyeight-75d605c/obama-commutations%2Fobama_commutations.csv.jsono' HTTP/1.1 200 OK Date: Mon, 13 Nov 2017 01:50:57 GMT Content-Type: application/json Transfer-Encoding: chunked Connection: keep-alive Set-Cookie: __cfduid=de836090f3e12a60579cc7a1696cf0d9e1510537857; expires=Tue, 13-Nov-18 01:50:57 GMT; path=/; domain=.datasettes.com; HttpOnly; Secure Access-Control-Allow-Origin: * Cache-Control: public, max-age=31536000 X-Now-Region: now-sfo CF-Cache-Status: HIT Expires: Tue, 13 Nov 2018 01:50:57 GMT Server: cloudflare-nginx CF-RAY: 3bce154a6d9293b4-SJC {"database": "fivethirtyeight", "table": "obama-commutations/obama_commutations.csv"...``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Set up some example datasets on a Cloudflare-backed domain 273278840 | |
343790984 | https://github.com/simonw/datasette/issues/71#issuecomment-343790984 | https://api.github.com/repos/simonw/datasette/issues/71 | MDEyOklzc3VlQ29tbWVudDM0Mzc5MDk4NA== | simonw 9599 | 2017-11-13T02:09:34Z | 2017-11-13T02:09:34Z | OWNER | HTTP/2 push totally worked on the redirect!
Meanwhile, in the network pane... |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Set up some example datasets on a Cloudflare-backed domain 273278840 | |
343791348 | https://github.com/simonw/datasette/issues/68#issuecomment-343791348 | https://api.github.com/repos/simonw/datasette/issues/68 | MDEyOklzc3VlQ29tbWVudDM0Mzc5MTM0OA== | simonw 9599 | 2017-11-13T02:12:58Z | 2017-11-13T02:12:58Z | OWNER | I should use this on https://fivethirtyeight.datasettes.com/ |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Support for title/source/license metadata 273247186 | |
343801392 | https://github.com/simonw/datasette/issues/73#issuecomment-343801392 | https://api.github.com/repos/simonw/datasette/issues/73 | MDEyOklzc3VlQ29tbWVudDM0MzgwMTM5Mg== | simonw 9599 | 2017-11-13T03:36:47Z | 2017-11-13T03:36:47Z | OWNER | While I’m at it, let’s allow people to opt out of HTTP/2 push with a ?_nopush=1 argument too - in case they decide they don’t want to receive large 302 responses. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
_nocache=1 query string option for use with sort-by-random 273296178 | |
343951751 | https://github.com/simonw/datasette/issues/68#issuecomment-343951751 | https://api.github.com/repos/simonw/datasette/issues/68 | MDEyOklzc3VlQ29tbWVudDM0Mzk1MTc1MQ== | simonw 9599 | 2017-11-13T15:21:04Z | 2017-11-13T15:21:04Z | OWNER | For first version, I'm just supporting title, source and license information at the database level. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Support for title/source/license metadata 273247186 | |
343961784 | https://github.com/simonw/datasette/issues/67#issuecomment-343961784 | https://api.github.com/repos/simonw/datasette/issues/67 | MDEyOklzc3VlQ29tbWVudDM0Mzk2MTc4NA== | simonw 9599 | 2017-11-13T15:50:50Z | 2017-11-13T15:50:50Z | OWNER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Command that builds a local docker container 273192789 | |
343967020 | https://github.com/simonw/datasette/issues/67#issuecomment-343967020 | https://api.github.com/repos/simonw/datasette/issues/67 | MDEyOklzc3VlQ29tbWVudDM0Mzk2NzAyMA== | simonw 9599 | 2017-11-13T16:06:10Z | 2017-11-13T16:06:10Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Command that builds a local docker container 273192789 | ||
344000982 | https://github.com/simonw/datasette/issues/75#issuecomment-344000982 | https://api.github.com/repos/simonw/datasette/issues/75 | MDEyOklzc3VlQ29tbWVudDM0NDAwMDk4Mg== | simonw 9599 | 2017-11-13T17:50:27Z | 2017-11-13T17:50:27Z | OWNER | This is necessary because one of the fun things to do with this tool is run it locally, e.g.:
BUT... if we enable CORS by default, an evil site could try sniffing for localhost:8003 and attempt to steal data. So we'll enable the CORS headers only if |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add --cors argument to serve 273509159 | |
344017088 | https://github.com/simonw/datasette/issues/51#issuecomment-344017088 | https://api.github.com/repos/simonw/datasette/issues/51 | MDEyOklzc3VlQ29tbWVudDM0NDAxNzA4OA== | simonw 9599 | 2017-11-13T18:44:23Z | 2017-11-13T18:44:23Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Make a proper README 272735257 | ||
344018680 | https://github.com/simonw/datasette/issues/74#issuecomment-344018680 | https://api.github.com/repos/simonw/datasette/issues/74 | MDEyOklzc3VlQ29tbWVudDM0NDAxODY4MA== | simonw 9599 | 2017-11-13T18:49:58Z | 2017-11-13T18:49:58Z | OWNER | Turns out it does this already: https://github.com/simonw/datasette/blob/6b3b05b6db0d2a7b7cec8b8dbb4ddc5e12a376b2/datasette/app.py#L96-L107 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Send a 302 redirect to the new hash for hits to old hashes 273296684 | |
344019631 | https://github.com/simonw/datasette/issues/69#issuecomment-344019631 | https://api.github.com/repos/simonw/datasette/issues/69 | MDEyOklzc3VlQ29tbWVudDM0NDAxOTYzMQ== | simonw 9599 | 2017-11-13T18:53:13Z | 2017-11-13T18:53:13Z | OWNER | I'm going with a page size of 100 and a max limit of 1000 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Enforce pagination (or at least limits) for arbitrary custom SQL 273248366 | |
344048656 | https://github.com/simonw/datasette/issues/69#issuecomment-344048656 | https://api.github.com/repos/simonw/datasette/issues/69 | MDEyOklzc3VlQ29tbWVudDM0NDA0ODY1Ng== | simonw 9599 | 2017-11-13T20:32:47Z | 2017-11-13T20:32:47Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Enforce pagination (or at least limits) for arbitrary custom SQL 273248366 | ||
344060070 | https://github.com/simonw/datasette/issues/55#issuecomment-344060070 | https://api.github.com/repos/simonw/datasette/issues/55 | MDEyOklzc3VlQ29tbWVudDM0NDA2MDA3MA== | simonw 9599 | 2017-11-13T21:14:13Z | 2017-11-13T21:14:13Z | OWNER | I'm going to add some extra metadata to setup.py and then tag this as version 0.8:
Then to ship to PyPI:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Ship first version to PyPI 273127117 | |
344061762 | https://github.com/simonw/datasette/issues/55#issuecomment-344061762 | https://api.github.com/repos/simonw/datasette/issues/55 | MDEyOklzc3VlQ29tbWVudDM0NDA2MTc2Mg== | simonw 9599 | 2017-11-13T21:19:43Z | 2017-11-13T21:19:43Z | OWNER | And we're live! https://pypi.python.org/pypi/datasette |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Ship first version to PyPI 273127117 | |
344074443 | https://github.com/simonw/datasette/issues/80#issuecomment-344074443 | https://api.github.com/repos/simonw/datasette/issues/80 | MDEyOklzc3VlQ29tbWVudDM0NDA3NDQ0Mw== | simonw 9599 | 2017-11-13T22:04:54Z | 2017-11-13T22:05:02Z | OWNER | The fivethirtyeight dataset:
And parlgov:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Deploy final versions of fivethirtyeight and parlgov datasets (with view pagination) 273569477 | |
344075696 | https://github.com/simonw/datasette/issues/80#issuecomment-344075696 | https://api.github.com/repos/simonw/datasette/issues/80 | MDEyOklzc3VlQ29tbWVudDM0NDA3NTY5Ng== | simonw 9599 | 2017-11-13T22:09:46Z | 2017-11-13T22:09:46Z | OWNER | Parlgov was throwing errors on one of the views, which takes longer than 1000ms to execute - so I added the ability to customize the time limit in https://github.com/simonw/datasette/commit/1e698787a4dd6df0432021a6814c446c8b69bba2
https://parlgov.datasettes.com/parlgov-25f9855/view_cabinet now returns in just over 2.5s |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Deploy final versions of fivethirtyeight and parlgov datasets (with view pagination) 273569477 | |
344076554 | https://github.com/simonw/datasette/pull/81#issuecomment-344076554 | https://api.github.com/repos/simonw/datasette/issues/81 | MDEyOklzc3VlQ29tbWVudDM0NDA3NjU1NA== | simonw 9599 | 2017-11-13T22:12:57Z | 2017-11-13T22:12:57Z | OWNER | Hah, I haven't even announced this yet :) Travis is upset because I'm using SQL in the tests which isn't compatible with their version of Python 3. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
:fire: Removes DS_Store 273595473 | |
344081876 | https://github.com/simonw/datasette/issues/59#issuecomment-344081876 | https://api.github.com/repos/simonw/datasette/issues/59 | MDEyOklzc3VlQ29tbWVudDM0NDA4MTg3Ng== | simonw 9599 | 2017-11-13T22:33:43Z | 2017-11-13T22:33:43Z | OWNER | The |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
datasette publish hyper 273157085 | |
344118849 | https://github.com/simonw/datasette/issues/82#issuecomment-344118849 | https://api.github.com/repos/simonw/datasette/issues/82 | MDEyOklzc3VlQ29tbWVudDM0NDExODg0OQ== | simonw 9599 | 2017-11-14T01:46:10Z | 2017-11-14T01:46:10Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Post a blog entry announcing it to the world 273596159 | ||
344132481 | https://github.com/simonw/datasette/issues/47#issuecomment-344132481 | https://api.github.com/repos/simonw/datasette/issues/47 | MDEyOklzc3VlQ29tbWVudDM0NDEzMjQ4MQ== | simonw 9599 | 2017-11-14T03:08:13Z | 2017-11-14T03:08:13Z | OWNER | I ended up shipping with https://fivethirtyeight.datasettes.com/ and https://parlgov.datasettes.com/ |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Create neat example database 271831408 | |
344141199 | https://github.com/simonw/datasette/issues/59#issuecomment-344141199 | https://api.github.com/repos/simonw/datasette/issues/59 | MDEyOklzc3VlQ29tbWVudDM0NDE0MTE5OQ== | simonw 9599 | 2017-11-14T04:13:11Z | 2017-11-14T04:13:11Z | OWNER | I managed to do this manually:
At this point, visiting the IP address in a browser showed the parlgov UI. To clean up...
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
datasette publish hyper 273157085 | |
344141515 | https://github.com/simonw/datasette/issues/79#issuecomment-344141515 | https://api.github.com/repos/simonw/datasette/issues/79 | MDEyOklzc3VlQ29tbWVudDM0NDE0MTUxNQ== | simonw 9599 | 2017-11-14T04:16:01Z | 2017-11-14T04:16:01Z | OWNER | This is probably a bit too much for the README - I should get readthedocs working. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add more detailed API documentation to the README 273569068 | |
344149165 | https://github.com/simonw/datasette/issues/57#issuecomment-344149165 | https://api.github.com/repos/simonw/datasette/issues/57 | MDEyOklzc3VlQ29tbWVudDM0NDE0OTE2NQ== | simonw 9599 | 2017-11-14T05:16:34Z | 2017-11-14T05:17:14Z | OWNER | I’m intrigued by this pattern: https://github.com/macropin/datasette/blob/147195c2fdfa2b984d8f9fc1c6cab6634970a056/Dockerfile#L8 What’s the benefit of doing that? Does it result in a smaller image size? |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Ship a Docker image of the whole thing 273127694 | |
344161226 | https://github.com/simonw/datasette/issues/46#issuecomment-344161226 | https://api.github.com/repos/simonw/datasette/issues/46 | MDEyOklzc3VlQ29tbWVudDM0NDE2MTIyNg== | simonw 9599 | 2017-11-14T06:41:21Z | 2017-11-14T06:41:21Z | OWNER | Spatial extensions would be really useful too. https://www.gaia-gis.it/spatialite-2.1/SpatiaLite-manual.html |
{ "total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Dockerfile should build more recent SQLite with FTS5 and spatialite support 271301468 | |
344161371 | https://github.com/simonw/datasette/issues/46#issuecomment-344161371 | https://api.github.com/repos/simonw/datasette/issues/46 | MDEyOklzc3VlQ29tbWVudDM0NDE2MTM3MQ== | simonw 9599 | 2017-11-14T06:42:15Z | 2017-11-14T06:42:15Z | OWNER | http://charlesleifer.com/blog/going-fast-with-sqlite-and-python/ is useful here too. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Dockerfile should build more recent SQLite with FTS5 and spatialite support 271301468 | |
344161430 | https://github.com/simonw/datasette/issues/46#issuecomment-344161430 | https://api.github.com/repos/simonw/datasette/issues/46 | MDEyOklzc3VlQ29tbWVudDM0NDE2MTQzMA== | simonw 9599 | 2017-11-14T06:42:44Z | 2017-11-14T06:42:44Z | OWNER | Also requested on Twitter: https://twitter.com/DenubisX/status/930322813864439808 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Dockerfile should build more recent SQLite with FTS5 and spatialite support 271301468 | |
344179878 | https://github.com/simonw/datasette/issues/27#issuecomment-344179878 | https://api.github.com/repos/simonw/datasette/issues/27 | MDEyOklzc3VlQ29tbWVudDM0NDE3OTg3OA== | simonw 9599 | 2017-11-14T08:21:22Z | 2017-11-14T08:21:22Z | OWNER | https://github.com/frappe/charts perhaps |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Ability to plot a simple graph 267886330 | |
344180866 | https://github.com/simonw/datasette/issues/43#issuecomment-344180866 | https://api.github.com/repos/simonw/datasette/issues/43 | MDEyOklzc3VlQ29tbWVudDM0NDE4MDg2Ng== | simonw 9599 | 2017-11-14T08:25:37Z | 2017-11-14T08:25:37Z | OWNER | This isn’t necessary - restarting the server is fast and easy, and I’ve not found myself needing this at all during development. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
While running, server should spot new db files added to its directory 268592894 | |
344185817 | https://github.com/simonw/datasette/issues/57#issuecomment-344185817 | https://api.github.com/repos/simonw/datasette/issues/57 | MDEyOklzc3VlQ29tbWVudDM0NDE4NTgxNw== | simonw 9599 | 2017-11-14T08:46:24Z | 2017-11-14T08:46:24Z | OWNER | Thanks for the explanation! Please do start a pull request. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Ship a Docker image of the whole thing 273127694 | |
344352573 | https://github.com/simonw/datasette/issues/30#issuecomment-344352573 | https://api.github.com/repos/simonw/datasette/issues/30 | MDEyOklzc3VlQ29tbWVudDM0NDM1MjU3Mw== | simonw 9599 | 2017-11-14T18:29:01Z | 2017-11-14T18:29:01Z | OWNER | This is a dupe of #85 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Do something neat with foreign keys 268078453 | |
344409906 | https://github.com/simonw/datasette/issues/93#issuecomment-344409906 | https://api.github.com/repos/simonw/datasette/issues/93 | MDEyOklzc3VlQ29tbWVudDM0NDQwOTkwNg== | simonw 9599 | 2017-11-14T21:47:02Z | 2017-11-14T21:47:02Z | OWNER | Even without bundling in the database file itself, I'd love to have a standalone binary version of the core I think Sanic may have some complex dependencies, but I've never tried pyinstaller so I don't know how easy or hard it would be to get this working. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Package as standalone binary 273944952 | |
344415756 | https://github.com/simonw/datasette/issues/93#issuecomment-344415756 | https://api.github.com/repos/simonw/datasette/issues/93 | MDEyOklzc3VlQ29tbWVudDM0NDQxNTc1Ng== | simonw 9599 | 2017-11-14T22:09:13Z | 2017-11-14T22:09:13Z | OWNER | Looks like we'd need to use this recipe: https://github.com/pyinstaller/pyinstaller/wiki/Recipe-Setuptools-Entry-Point |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Package as standalone binary 273944952 | |
344426887 | https://github.com/simonw/datasette/issues/93#issuecomment-344426887 | https://api.github.com/repos/simonw/datasette/issues/93 | MDEyOklzc3VlQ29tbWVudDM0NDQyNjg4Nw== | simonw 9599 | 2017-11-14T22:51:46Z | 2017-11-14T22:51:46Z | OWNER | That didn't quite work for me. It built me a
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Package as standalone binary 273944952 | |
344427448 | https://github.com/simonw/datasette/issues/88#issuecomment-344427448 | https://api.github.com/repos/simonw/datasette/issues/88 | MDEyOklzc3VlQ29tbWVudDM0NDQyNzQ0OA== | simonw 9599 | 2017-11-14T22:54:06Z | 2017-11-14T22:54:06Z | OWNER | Hooray! First dataset that wasn't deployed by me :) https://github.com/simonw/datasette/wiki/Datasettes |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add NHS England Hospitals example to wiki 273775212 | |
344427560 | https://github.com/simonw/datasette/issues/88#issuecomment-344427560 | https://api.github.com/repos/simonw/datasette/issues/88 | MDEyOklzc3VlQ29tbWVudDM0NDQyNzU2MA== | simonw 9599 | 2017-11-14T22:54:33Z | 2017-11-14T22:54:33Z | OWNER | I'm getting an internal server error on http://run.plnkr.co/preview/cj9zlf1qc0003414y90ajkwpk/ at the moment |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add NHS England Hospitals example to wiki 273775212 | |
344438724 | https://github.com/simonw/datasette/issues/14#issuecomment-344438724 | https://api.github.com/repos/simonw/datasette/issues/14 | MDEyOklzc3VlQ29tbWVudDM0NDQzODcyNA== | simonw 9599 | 2017-11-14T23:47:54Z | 2017-11-14T23:47:54Z | OWNER | Plugins should be able to interact with the build step. This would give plugins an opportunity to modify the SQL databases and help prepare them for serving - for example, a full-text search plugin might create additional FTS tables, or a mapping plugin might pre-calculate a bunch of geohashes for tables that have latitude/longitude values. Plugins could really take advantage of the immutable nature of the dataset here. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Datasette Plugins 267707940 | |
344440377 | https://github.com/simonw/datasette/issues/93#issuecomment-344440377 | https://api.github.com/repos/simonw/datasette/issues/93 | MDEyOklzc3VlQ29tbWVudDM0NDQ0MDM3Nw== | simonw 9599 | 2017-11-14T23:56:35Z | 2017-11-14T23:56:35Z | OWNER | It worked!
|
{ "total_count": 3, "+1": 0, "-1": 0, "laugh": 0, "hooray": 3, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Package as standalone binary 273944952 | |
344440658 | https://github.com/simonw/datasette/issues/93#issuecomment-344440658 | https://api.github.com/repos/simonw/datasette/issues/93 | MDEyOklzc3VlQ29tbWVudDM0NDQ0MDY1OA== | simonw 9599 | 2017-11-14T23:58:07Z | 2017-11-14T23:58:07Z | OWNER | It's a shame pyinstaller can't act as a cross-compiler - so I don't think I can get Travis CI to build packages. But it's fantastic that it's possible to turn the tool into a standalone executable! |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Package as standalone binary 273944952 | |
344452063 | https://github.com/simonw/datasette/issues/85#issuecomment-344452063 | https://api.github.com/repos/simonw/datasette/issues/85 | MDEyOklzc3VlQ29tbWVudDM0NDQ1MjA2Mw== | simonw 9599 | 2017-11-15T01:03:03Z | 2017-11-15T01:03:03Z | OWNER | This can work in reverse too. If you view the row page for something that has foreign keys against it, we can show you “53 items in TABLE link to this” and provide a link to view them all. That count worry could be prohibitively expensive. To counter that, we could run the count query via Ajax and set a strict time limit on it. See #95 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Detect foreign keys and use them to link HTML pages together 273678673 | |
344452326 | https://github.com/simonw/datasette/issues/85#issuecomment-344452326 | https://api.github.com/repos/simonw/datasette/issues/85 | MDEyOklzc3VlQ29tbWVudDM0NDQ1MjMyNg== | simonw 9599 | 2017-11-15T01:04:38Z | 2017-11-15T01:04:38Z | OWNER | This will work well in conjunction with https://github.com/simonw/csvs-to-sqlite/issues/2 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Detect foreign keys and use them to link HTML pages together 273678673 | |
344462277 | https://github.com/simonw/datasette/pull/89#issuecomment-344462277 | https://api.github.com/repos/simonw/datasette/issues/89 | MDEyOklzc3VlQ29tbWVudDM0NDQ2MjI3Nw== | simonw 9599 | 2017-11-15T02:02:52Z | 2017-11-15T02:02:52Z | OWNER | This is exactly what I was after, thanks! |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
SQL syntax highlighting with CodeMirror 273816720 | |
344462608 | https://github.com/simonw/datasette/issues/13#issuecomment-344462608 | https://api.github.com/repos/simonw/datasette/issues/13 | MDEyOklzc3VlQ29tbWVudDM0NDQ2MjYwOA== | simonw 9599 | 2017-11-15T02:04:51Z | 2017-11-15T02:04:51Z | OWNER | Fixed in https://github.com/simonw/datasette/commit/8252daa4c14d73b4b69e3f2db4576bb39d73c070 - thanks, @tomdyson! |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add a syntax highlighting SQL editor 267542338 | |
344463436 | https://github.com/simonw/datasette/issues/95#issuecomment-344463436 | https://api.github.com/repos/simonw/datasette/issues/95 | MDEyOklzc3VlQ29tbWVudDM0NDQ2MzQzNg== | simonw 9599 | 2017-11-15T02:10:10Z | 2017-11-15T02:10:10Z | OWNER | This means clients can ask questions but say "don't bother if it takes longer than X" - which is really handy when you're working against unknown databases that might be small or might be enormous. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Allow shorter time limits to be set using a ?_sql_time_limit_ms =20 query string limit 273998513 | |
344472313 | https://github.com/simonw/datasette/pull/94#issuecomment-344472313 | https://api.github.com/repos/simonw/datasette/issues/94 | MDEyOklzc3VlQ29tbWVudDM0NDQ3MjMxMw== | simonw 9599 | 2017-11-15T03:08:00Z | 2017-11-15T03:08:00Z | OWNER | Works for me. I'm going to land this. Just one thing:
Maybe we should have the Docker container install the "now" client? Not sure how much size that would add though. I think it's OK without for the moment. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Initial add simple prod ready Dockerfile refs #57 273961179 | |
344487639 | https://github.com/simonw/datasette/issues/25#issuecomment-344487639 | https://api.github.com/repos/simonw/datasette/issues/25 | MDEyOklzc3VlQ29tbWVudDM0NDQ4NzYzOQ== | simonw 9599 | 2017-11-15T05:11:11Z | 2017-11-15T05:11:11Z | OWNER | Since you can already download the database directly, I'm not going to bother with this one. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Endpoint that returns SQL ready to be piped into DB 267857622 | |
344657040 | https://github.com/simonw/datasette/issues/85#issuecomment-344657040 | https://api.github.com/repos/simonw/datasette/issues/85 | MDEyOklzc3VlQ29tbWVudDM0NDY1NzA0MA== | simonw 9599 | 2017-11-15T16:56:48Z | 2017-11-15T16:56:48Z | OWNER | Since detecting foreign keys that point to a specific table is a bit expensive (you have to call a PRAGMA on every other table) I’m going to add this to the build/inspect stage. Idea: if we detect that the foreign key table only has one other column in it (id, name) AND we know that the id is the primary key, we can add an efficient lookup on the table list view and prefetch a dictionary mapping IDs to their value. Then we can feed that dictionary in as extra tenplate context and use it to render labeled hyperlinks in the corresponding column. This means our build step should also cache which columns are indexed, and add a “label_column” property for tables with an obvious lane column. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Detect foreign keys and use them to link HTML pages together 273678673 | |
344667202 | https://github.com/simonw/datasette/issues/90#issuecomment-344667202 | https://api.github.com/repos/simonw/datasette/issues/90 | MDEyOklzc3VlQ29tbWVudDM0NDY2NzIwMg== | simonw 9599 | 2017-11-15T17:29:38Z | 2017-11-15T17:29:38Z | OWNER | @jacobian points out that a buildpack may be a better fit than a Docker container for implementing this: https://twitter.com/jacobian/status/930849058465255424 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
datasette publish heroku 273846123 | |
344680385 | https://github.com/simonw/datasette/issues/90#issuecomment-344680385 | https://api.github.com/repos/simonw/datasette/issues/90 | MDEyOklzc3VlQ29tbWVudDM0NDY4MDM4NQ== | simonw 9599 | 2017-11-15T18:14:11Z | 2017-11-15T18:14:11Z | OWNER | Maybe we don’t even need a buildpack... we could create a temporary directory, set up a classic heroku app with the datasette serve command in the Procfile and then git push to deploy. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
datasette publish heroku 273846123 | |
344686483 | https://github.com/simonw/datasette/issues/90#issuecomment-344686483 | https://api.github.com/repos/simonw/datasette/issues/90 | MDEyOklzc3VlQ29tbWVudDM0NDY4NjQ4Mw== | simonw 9599 | 2017-11-15T18:36:23Z | 2017-11-15T18:36:23Z | OWNER | The “datasette build” command would need to run in a bin/post_compile script eg https://github.com/simonw/simonwillisonblog/blob/cloudflare-ips/bin/post_compile |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
datasette publish heroku 273846123 | |
344687328 | https://github.com/simonw/datasette/issues/90#issuecomment-344687328 | https://api.github.com/repos/simonw/datasette/issues/90 | MDEyOklzc3VlQ29tbWVudDM0NDY4NzMyOA== | simonw 9599 | 2017-11-15T18:39:14Z | 2017-11-15T18:39:49Z | OWNER | By default the command could use a temporary directory that gets cleaned up after the deploy, but we could allow users to opt in to keeping the generated directory like so:
This would create the my-heroku-app folder so you can later execute further git deploys from there. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
datasette publish heroku 273846123 | |
344770170 | https://github.com/simonw/datasette/pull/107#issuecomment-344770170 | https://api.github.com/repos/simonw/datasette/issues/107 | MDEyOklzc3VlQ29tbWVudDM0NDc3MDE3MA== | simonw 9599 | 2017-11-16T00:01:00Z | 2017-11-16T00:01:22Z | OWNER | It is - but I think this will break on this line since it expects two format string parameters: Needs unit tests too, which live here: https://github.com/simonw/datasette/blob/f45ca30f91b92ac68adaba893bf034f13ec61ced/tests/test_utils.py#L49 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
add support for ?field__isnull=1 274343647 | |
344771130 | https://github.com/simonw/datasette/issues/100#issuecomment-344771130 | https://api.github.com/repos/simonw/datasette/issues/100 | MDEyOklzc3VlQ29tbWVudDM0NDc3MTEzMA== | simonw 9599 | 2017-11-16T00:06:00Z | 2017-11-16T00:06:00Z | OWNER | Aha... it looks like this is a Jinja version problem: https://github.com/ansible/ansible/issues/25381#issuecomment-306492389 Datasette depends on sanic-jinja2 - and that doesn't depend on a particular jinja2 version: https://github.com/lixxu/sanic-jinja2/blob/7e9520850d8c6bb66faf43b7f252593d7efe3452/setup.py#L22 So if you have an older version of Jinja installed, stuff breaks. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
TemplateAssertionError: no filter named 'tojson' 274160723 | |
344786528 | https://github.com/simonw/datasette/issues/96#issuecomment-344786528 | https://api.github.com/repos/simonw/datasette/issues/96 | MDEyOklzc3VlQ29tbWVudDM0NDc4NjUyOA== | simonw 9599 | 2017-11-16T01:32:41Z | 2017-11-16T01:32:41Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
UI for editing named parameters 274001453 | ||
344788435 | https://github.com/simonw/datasette/issues/96#issuecomment-344788435 | https://api.github.com/repos/simonw/datasette/issues/96 | MDEyOklzc3VlQ29tbWVudDM0NDc4ODQzNQ== | simonw 9599 | 2017-11-16T01:43:52Z | 2017-11-16T01:43:52Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
UI for editing named parameters 274001453 | ||
344788763 | https://github.com/simonw/datasette/issues/96#issuecomment-344788763 | https://api.github.com/repos/simonw/datasette/issues/96 | MDEyOklzc3VlQ29tbWVudDM0NDc4ODc2Mw== | simonw 9599 | 2017-11-16T01:45:51Z | 2017-11-16T01:45:51Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
UI for editing named parameters 274001453 | ||
344975156 | https://github.com/simonw/datasette/issues/46#issuecomment-344975156 | https://api.github.com/repos/simonw/datasette/issues/46 | MDEyOklzc3VlQ29tbWVudDM0NDk3NTE1Ng== | simonw 9599 | 2017-11-16T16:19:44Z | 2017-11-16T16:19:44Z | OWNER | That's fantastic! Thank you very much for that. Do you know if it's possible to view the Dockerfile used by https://hub.docker.com/r/prolocutor/python3-sqlite-ext/ ? |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Dockerfile should build more recent SQLite with FTS5 and spatialite support 271301468 | |
344976104 | https://github.com/simonw/datasette/issues/46#issuecomment-344976104 | https://api.github.com/repos/simonw/datasette/issues/46 | MDEyOklzc3VlQ29tbWVudDM0NDk3NjEwNA== | simonw 9599 | 2017-11-16T16:22:45Z | 2017-11-16T16:22:45Z | OWNER | Found a relevant Dockerfile on Reddit: https://www.reddit.com/r/Python/comments/5unkb3/install_sqlite3_on_python_3/ddzdz2b/ |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Dockerfile should build more recent SQLite with FTS5 and spatialite support 271301468 | |
344976882 | https://github.com/simonw/datasette/issues/46#issuecomment-344976882 | https://api.github.com/repos/simonw/datasette/issues/46 | MDEyOklzc3VlQ29tbWVudDM0NDk3Njg4Mg== | simonw 9599 | 2017-11-16T16:25:07Z | 2017-11-16T16:25:07Z | OWNER | Maybe part of the solution here is to add a |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Dockerfile should build more recent SQLite with FTS5 and spatialite support 271301468 |
Advanced export
JSON shape: default, array, newline-delimited, object
CREATE TABLE [issue_comments] ( [html_url] TEXT, [issue_url] TEXT, [id] INTEGER PRIMARY KEY, [node_id] TEXT, [user] INTEGER REFERENCES [users]([id]), [created_at] TEXT, [updated_at] TEXT, [author_association] TEXT, [body] TEXT, [reactions] TEXT, [issue] INTEGER REFERENCES [issues]([id]) , [performed_via_github_app] TEXT); CREATE INDEX [idx_issue_comments_issue] ON [issue_comments] ([issue]); CREATE INDEX [idx_issue_comments_user] ON [issue_comments] ([user]);
user >30