# Query node This is a query-node project generated by `hydra-cli`. Experiment by modifying `schema.graphql` and the mappings in the `mappings` folder, defined in `manifest.yml`. For more information about Hydra see: https://dzhelezov.gitbook.io/hydra/ ## 1. Building the node Run ```bash # Make sure these steps are executed first: # yarn build:packages; # OR: # yarn && yarn workspace @joystream/types build && yarn workspace @joystream/metadata-protobuf build yarn workspace query-node-root build ``` This will generate event decorations for the mappings via `hydra-typegen` inside `mappings/generated` (based on the runtime metadata saved in `../chain-metadata.json`) and a graphql-server along with the TypeORM models based on `schema.graphql` inside `generated/graphql-server`. ## 2. Building the mappings In order to re-build the mappings only, without re-generating the graphql-server code and event decorations (in case there were no changes in the runtime and `schema.graphql`) you can also run: ```bash yarn workspace query-node-mappings build ``` ## 3. Initializing the database and starting the node ```bash yarn workspace query-node-root start ``` This script script will: - Bring up `joystream-node` service (if not already started) - Bring up `db` service (query node is using a PostgreSQL database to store the data) - Configure the database (`yarn workspace query-node config:dev`) - Create the database and initialize schema (`yarn workspace query-node-root db:prepare && yarn workspace query-node-root db:processor:migrate`) - Start the GraphQL server service (`docker-compose up -d graphql-server`) - Start the Hydra Processor responsible for processing the runtime events and running the mappings' functions (`docker-compose up -d processor`) ## 4. Stopping the node and removing all associated containers You can stop the query-node and remove all associated docker containers without affecting any other services by running: ```bash yarn workspace query-node-root kill ```