hasura / json2graphql Goto Github PK
View Code? Open in Web Editor NEWFrom a JSON file to postgres-backed realtime GraphQL
License: MIT License
From a JSON file to postgres-backed realtime GraphQL
License: MIT License
When I run the file with 2000 json objects I get an error. I've done several tests and realized that the error only occurs when there are more than 1927 objects in the json. Any tips on how to solve?
Ex:
json2graphql http://localhost:8080 -s xxxxxxx -d C:\db.json -o
What does this error mean ?
Verifying URL... Done!
Processing JSON data... Done!
Checking database... Skipped!
Creating tables... Done!
Tracking tables... Done!
Creating relationships... Error
{
"path": "$",
"error": "expected atleast one query in bulk",
"code": "bad-request"
}
This example works:
{
"post": [
{ "id": 1, "title": "Lorem Ipsum", "views": 254, "user_id": 123 },
{ "id": 2, "title": "Sic Dolor amet", "views": 65, "user_id": 456 }
],
"user": [
{ "id": 123, "name": "John Doe" },
{ "id": 456, "name": "Alison Craus" }
],
"comment": [
{ "id": 987, "post_id": 1, "body": "Consectetur adipiscing elit", "user_id": 123 },
{ "id": 995, "post_id": 2, "body": "Nam molestie pellentesque dui", "user_id": 456 },
{ "id": 999, "post_id": 1, "body": "quid agis", "user_id": 456 }
]
}
My simple json does not:
{
"events": [
{
"id": 1,
"case": "xxxx",
"link": "https://google.com",
"document": "18",
"time": "02:30 PM",
"description": "doc18",
"AllJudges": "Hearing John Doe.",
"HearingJudge": "John Doe",
"PresiderJudge": "Doe John"
},
{
"id": 1,
"case": "xxxx",
"link": "https://google.com",
"document": "18",
"time": "02:30 PM",
"description": "doc18",
"AllJudges": "Hearing John Doe.",
"HearingJudge": "John Doe",
"PresiderJudge": "Doe John"
}
]
}
Check how batching is performed in firebase2graphql.}
Similar logic has to be implemented.
I'm very excited about trying out Hasura with RxDB like described in your great blog post https://hasura.io/blog/building-an-offline-first-web-app-with-rxdb-hasura but one drawback I see is that there is no schema workflow to sync Hasura with RxDB json-schema … so my question here is why not support json-schema instead of an ad-hoc custom transform?
JSON2GRPAHQL TOOL Currently either overwrites the table or throws table existing error.
Can we change the behaviour to start appending the data to existing instead of table existing error
data = ['id,Name,Type1,Type2,HP,Attack,Defense,SpecialAtk,SpecialDef,Speed,Generation,Legendary,Mega\n', '1,Bulbasaur,Grass,Poison,45,49,49,65,65,45,1,FALSE,FALSE\n', '2,Ivysaur,Grass,Poison,60,62,63,80,80,60,1,FALSE,FALSE\n', '3,Mega Venusaur,Grass,Poison,80,100,123,122,120,80,1,FALSE,TRUE\n',
with open('Final-Problem-1/abc.json', 'w') as outfile:
json.dump(data, outfile, indent=4)
abc.json
{ "pokedex" :
[
"id,Name,Type1,Type2,HP,Attack,Defense,SpecialAtk,SpecialDef,Speed,Generation,Legendary,Mega\n",
"1,Bulbasaur,Grass,Poison,45,49,49,65,65,45,1,FALSE,FALSE\n",
"2,Ivysaur,Grass,Poison,60,62,63,80,80,60,1,FALSE,FALSE\n",
]
}
json2graphql
Verifying URL... Done!
Processing JSON data... Error
message: a unique column with name "id" must present in table "pokedex"
Moved from hasura/json2graphql.
Originally opened by @FrediBach
Moved from hasura/json2graphql.
Originally opened by @FrediBach
The test data includes the JSON object j2g_test_users[0].object
, but its value is imported as a string, instead of JSON:
Expected value:
{
"hey": "there",
"whats": "up"
}
Returned value:
"{\"hey\":\"there\",\"whats\":\"up\"}"
Moved from hasura/json2graphql.
Originally opened by: @FrediBach
There's no way to import data into a database not named anything other than default
, and the --db
flag is currently taken up by the file to import. This is not that uncommon a case, and the normal Hasura CLI has ways to point to a specific database alone.
It seems that this project does not get a lot of love, are PRs currently being accepted or is this module looking for maintainers?
Hasura/json2graphql
team,First I want to say I have really enjoyed using this tool. There is at least one thing I do think it is missing though, if you want to push using --overwrite
you will loose your permissions, and even if you don't overwrite, it appears you cannot currently set permissions. I be happy to see json2graphql
set permissions via command line at the same time as it sets the data. It would be great to use the db.json
data itself to set permissions if possible (or another file if that is preferred).
{
"post": [
{ "id": 1, "title": "Lorem Ipsum", "views": 254, "user_id": 123 },
{ "id": 2, "title": "Sic Dolor amet", "views": 65, "user_id": 456 }
],
"user": [
{ "id": 123, "name": "John Doe" },
{ "id": 456, "name": "Alison Craus" }
],
"comment": [
{ "id": 987, "post_id": 1, "body": "Consectetur adipiscing elit", "user_id": 123 },
{ "id": 995, "post_id": 2, "body": "Nam molestie pellentesque dui", "user_id": 456 },
{ "id": 999, "post_id": 1, "body": "quid agis", "user_id": 456 }
]
}
{
"post": [
{ "id": 1, "title": "Lorem Ipsum", "views": 254, "user_id": 123 },
{ "id": 2, "title": "Sic Dolor amet", "views": 65, "user_id": 456 }
],
"user": [
{ "id": 123, "name": "John Doe" },
{ "id": 456, "name": "Alison Craus" }
],
"comment": [
{ "id": 987, "post_id": 1, "body": "Consectetur adipiscing elit", "user_id": 123 },
{ "id": 995, "post_id": 2, "body": "Nam molestie pellentesque dui", "user_id": 456 },
{ "id": 999, "post_id": 1, "body": "quid agis", "user_id": 456 }
],
/** OPTIONAL: permissions section, so that changing the data does not wipe the permissions */
"permissions": {
"post": {
"roles": {
/** admin is a default, thus it does not need to be listed or changed */
"anonymous": {
/** when allowing via custom check something like this */
"insert": {
"With custom check:": {
/** this is exactly the same as is shown in the data tab */
"users_id": { "_eq": "X-Hasura-User-Id" },
/** with the addition of a columns */
"columns": ["title", "views"]
}
},
/** when allowing all columns without any checks, for all columns */
"select": { "Without any checks": { "columns": ["*"]} },
/** when you just want to keep no permissions for a statement */
"update": {},
/** when allowing via custom check for all columns, you can omit the columns or use a wildcard */
"delete": {
"With custom check:": {
"users_id": { "_eq": "X-Hasura-User-Id" },
"columns": ["*"]
}
}
}
}
}
}
}
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.