{"id":16391748,"url":"https://github.com/williamfzc/j2db","last_synced_at":"2025-02-22T22:27:29.869Z","repository":{"id":62572023,"uuid":"207841736","full_name":"williamfzc/j2db","owner":"williamfzc","description":"standard and safe way to upload your json to db","archived":false,"fork":false,"pushed_at":"2020-01-18T05:54:59.000Z","size":67,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-04T14:07:58.015Z","etag":null,"topics":["database","http","json","sqlalchemy"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/williamfzc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-09-11T15:09:43.000Z","updated_at":"2020-01-18T05:55:01.000Z","dependencies_parsed_at":"2022-11-04T00:45:02.090Z","dependency_job_id":null,"html_url":"https://github.com/williamfzc/j2db","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/williamfzc%2Fj2db","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/williamfzc%2Fj2db/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/williamfzc%2Fj2db/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/williamfzc%2Fj2db/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/williamfzc","download_url":"https://codeload.github.com/williamfzc/j2db/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240245909,"owners_count":19771028,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["database","http","json","sqlalchemy"],"created_at":"2024-10-11T04:47:14.680Z","updated_at":"2025-02-22T22:27:29.836Z","avatar_url":"https://github.com/williamfzc.png","language":"Python","readme":"# j2db (JSON to Database)\n\n[![PyPI version](https://badge.fury.io/py/j2db.svg)](https://badge.fury.io/py/j2db)\n![CI Status](https://github.com/williamfzc/j2db/workflows/smoketest/badge.svg)  \n\nstandard and safe way to upload your json to db\n\n## flow\n\n![](./docs/pics/json2db.svg)\n\n- http request with json data (from wherever you like)\n- verify (format and content)\n- customize your own flow (full support of hook!)\n- upload to db\n\nbased on it, developers can easily build their own lightweight cross-platform center for data collection.\n\n![](./docs/pics/deployment.svg)\n\n## why\n\nData uploader is a really important part in development workflow.\n\nBut many (so many) different db clients in different places or different languages ​​make me feel tired, and i have to implement them in different projects again and again ...\n\nWhy do not we use JSON directly? and actually, some (most of) projects should not operate database directly.\n\n## what's the difference with others\n\n\u003e **In production environment, you should consider ELK firstly.** \n\u003e ELK is nearly the best way to handle logging issues. It's standard and stable.\n\nj2db offers a flexible and lightweight (ELK is good but huge) way to developers, which makes them upload the specific contents you care (e.g. CI status) to database, in different platforms or languages, more conveniently.\n\nthe point is:\n\n- easy to use in different projects\n- lightweight enough, less dependencies\n- stable\n- customizable\n\n## support more actions? (query / delete / update)\n\nHave no plan now. And, that is why this repo called `j2db`, not `db2j`.\n\n- `query` should be better implemented by others, exposed via HTTP API or something else\n- `update` and `delete` will modify the origin data. **BUT, LOG (OR SOMETHING LIKE THAT) SHOULD BE IMMUTABLE.**\n\n## how\n\n- server for receiving http request, and get JSON\n- check (support custom hook)\n- convert JSON to model (ORM built with SQLAlchemy)\n- upload to db\n\n## usage\n\nsee [example](example)\n\n## dependencies\n\n- [fastapi](https://github.com/tiangolo/fastapi): as web server\n- [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy): as db manager \n\n## dev plan\n\nsee [project kanban](https://github.com/williamfzc/j2db/projects/1)\n\n## bug report \u0026 suggestion \u0026 contribution\n\nvia [issue board](https://github.com/williamfzc/j2db/issues)\n\nwelcome to join this project :)\n\n## license\n\n[MIT](LICENSE)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwilliamfzc%2Fj2db","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwilliamfzc%2Fj2db","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwilliamfzc%2Fj2db/lists"}