dgraph-init
v0.0.2
Published
CLI tool for setting up a Dgraph Dev instance.
Downloads
2
Readme
Dgraph-Init
CLI tool for setting up dev instance of dgraph database
To create a db project using dgraph-init
, run any of the following command and answer the command prompt questions:
$ npx dgraph-init
AuthToken
you can find your defualt AuthToken inside the .env
fie named DEV_DGRAPH_GRAPHQL_KEY
Endpoints
- GraphQl -
localhost:8080/graphql
- lambda -
localhost:8686/graphql-worker
- admin -
localhost:8080/admin
- ratelUi -
localhost:8000
Prerequisites
- Make sure you have
docker
anddocker-compose
installed.
You can use npm db
to manage your docker containers related to your database.
db
is just a sorthand for docker-compose -f ./devCluster.yml --env-file .env
so you can use it as docker-compose.
db up
spins up containersalpha
,zero
,lambda
,ratel
as described indevCluster.yml
db stop
stops all the containerdb down
deletes all containerdb down -v
deletes all container along with all volumes
Paste your schema inside
schema/schema.gql
.Run
db-updateSchema
to add mew schema to db ` .
- NOTE: If you run
db-updateSchema
without adding your schema it will use defualt schema ,you can change it by repeating the steps mentioned before.
You can write your lambda code in typescript inside of
lambda/lambdas.ts
Compile your into javascript by running
db-lambdaBuild
when you restart your server using
db down
and thendb up
your new lambda will used
- Write admin
query
ormutation
inside ofadmin/oprations
dirictiory, in a.gql
or.graphql
file, Make sure you have named the query in the file like this.
mutation updateGQLSchema($sch: String!) {
updateGQLSchema(input: { set: { schema: $sch } }) {
gqlSchema {
schema
generatedSchema
}
}
}
Make sure that your admin endpoint is live
Run
gen-gql
to genrate a typesafesdk
that contains all your queries and mutaions insideadmin/oprations
dirictioryyou can import the
sdk
fromadmin/scripts/generatedTyps.ts
import
graphqlDgraphAdminRequestClient
which is a graphql-request Clint for admin endpoint, AuthToken is already attached to header when usinggraphqlDgraphAdminRequestClient
You can use the sdk
like this :
import { graphqlDgraphAdminRequestClient } from '../GQLDgraphAdminClient';
import { getSdk } from '`admin/scripts/generatedTyps';
const script =async () => {
const schema:string=`
type User {
id: ID
name: String
email: String @search(by: [hash])
emailVerified: DateTime
image: String
}
`
try {
const res = await getSdk(graphqlDgraphAdminRequestClient).updateGQLSchema({ sch: schema });
console.log('generatedSchema',res.updateGQLSchema);
} catch (error) {
console.error(error);
}
}
script()
Contributing
Feel free to contribute to the dgraph-init by creating a PR
License
Dgraph-init is licensed under the MIT License.