issue_comments: 614845657
This data as json
html_url | issue_url | id | node_id | user | created_at | updated_at | author_association | body | reactions | issue | performed_via_github_app |
---|---|---|---|---|---|---|---|---|---|---|---|
https://github.com/simonw/sqlite-utils/issues/100#issuecomment-614845657 | https://api.github.com/repos/simonw/sqlite-utils/issues/100 | 614845657 | MDEyOklzc3VlQ29tbWVudDYxNDg0NTY1Nw== | 9599 | 2020-04-16T19:17:05Z | 2020-04-16T19:17:05Z | OWNER | The syntax for explicitly creating a table looks like this: ```python db["cats"].create({ "id": int, "name": str, "weight": float, }, pk="id") ``` So using a dictionary of column name -> Python type here would be good. I think it becomes a new optional argument to `.insert_all()` and `.insert()` and `.upsert_all()` and `.upsert()`. Question is, what should that argument be called? Options: - `columns` - `types` - `type_overrides` - `extra_columns` I like the first two best. I'm leaning towards `columns` - it would serve two purposes: you can use it to ensure extra columns are created, and you can use it to specify the type on extra OR deteced columns. Maybe something like this: ```python db["authors"].insert_all( [{"id": 1, "name": "Sally", "score": "2"}], pk="id", not_null={"name", "score"}, defaults={"score": 1}, columns={"score": int, "weight": float} ) ``` | {"total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | 601358649 |