Browse Source

Merge pull request #2312 from metmirr/query-node-hydra-cli-v0.1.8-1

Upgrade hydra-processor
Mokhtar Naamani 4 years ago
parent
commit
fe624b917b

+ 1 - 21
.env

@@ -3,7 +3,7 @@ PROJECT_NAME=query_node
 
 # We will use a single postgres service with multiple databases
 INDEXER_DB_NAME=query_node_indexer
-PROCESSOR_DB_NAME=query_node_processor
+DB_NAME=query_node_processor
 DB_USER=postgres
 DB_PASS=postgres
 DB_HOST=localhost
@@ -16,30 +16,10 @@ TYPEORM_LOGGING=error
 #    Indexer options      #
 ###########################
 
-# Substrate endpoint to source events from
-WS_PROVIDER_ENDPOINT_URI=ws://localhost:9944/
-
 # Block height to start indexing from.
 # Note, that if there are already some indexed events, this setting is ignored
 BLOCK_HEIGHT=0
 
-# Redis cache server
-REDIS_URI=redis://localhost:6379/0
-
-###########################
-#    Processor options    #
-###########################
-
-# Where the mapping scripts are located, relative to ./generated/indexer
-TYPES_JSON=../../../types/augment/all/defs.json
-
-# Indexer GraphQL API endpoint to fetch indexed events
-INDEXER_ENDPOINT_URL=http://localhost:4000/graphql
-
-# Block height from which the processor starts. Note that if
-# there are already processed events in the database, this setting is ignored
-BLOCK_HEIGHT=0
-
 ###############################
 #    Processor GraphQL API    #
 ###############################

+ 5 - 9
docker-compose.yml

@@ -74,7 +74,7 @@ services:
       - .env
     environment:
       - DB_HOST=db
-      - DB_NAME=${PROCESSOR_DB_NAME}
+      - DB_NAME=${DB_NAME}
     ports:
       - "127.0.0.1:8081:${GRAPHQL_SERVER_PORT}"
     depends_on: 
@@ -91,11 +91,10 @@ services:
       # relative to working directory where docker-compose was run from
       - .env
     environment:
-      - INDEXER_ENDPOINT_URL=http://indexer-api-gateway:${WARTHOG_APP_PORT}/graphql
-      - TYPEORM_HOST=db
-      - TYPEORM_DATABASE=${PROCESSOR_DB_NAME}
-      - DEBUG=index-builder:*
-      - WS_PROVIDER_ENDPOINT_URI=ws://joystream-node:9944
+      - POLL_INTERVAL_MS=300
+      - DEBUG=hydra-processor:*
+      - DB_HOST=db
+      - INDEXER_ENDPOINT_URL=http://indexer-api-gateway:4002/graphql
     depends_on:
       - indexer-api-gateway
     command: ["workspace", "query-node-root", "processor:start"]
@@ -107,10 +106,7 @@ services:
       # relative to working directory where docker-compose was run from
       - .env
     environment:
-      - TYPEORM_HOST=db
-      - TYPEORM_DATABASE=${INDEXER_DB_NAME}
       - INDEXER_WORKERS=5
-      - PROCESSOR_POLL_INTERVAL=1000 # refresh every second
       - REDIS_URI=redis://redis:6379/0
       - DEBUG=index-builder:*
       - WS_PROVIDER_ENDPOINT_URI=ws://joystream-node:9944

+ 2 - 2
package.json

@@ -38,8 +38,8 @@
     "babel-core": "^7.0.0-bridge.0",
     "typescript": "^3.9.7",
     "bn.js": "^5.1.2",
-    "@dzlzv/hydra-indexer-lib": "0.0.22-legacy.1.26.1",
-    "rxjs": "^6.6.2"
+    "rxjs": "^6.6.2",
+    "typeorm": "^0.2.31"
   },
   "devDependencies": {
     "eslint": "^7.6.0",

+ 8 - 8
query-node/build.sh

@@ -11,19 +11,19 @@ set +a
 
 yarn clean
 
-# We generate the code for each service separately to be able to specify
-# separate database names.
+# Build graphql-server customizing DB name
+yarn codegen
+# yarn typegen
 
-# Build indexer customizing DB name
-DB_NAME=${INDEXER_DB_NAME} yarn codegen:indexer
+echo "Building mappings..."
+(cd mappings && yarn build)
+echo "Done."
 
-# Build graphql-server customizing DB name
-DB_NAME=${PROCESSOR_DB_NAME} yarn codegen:server
+# Copy joy types
+cp ../types/augment/all/defs.json ./mappings/lib/mappings/generated-t/types/typedefs.json
 
 # We run yarn again to ensure processor and indexer dependencies are installed
 # and are inline with root workspace resolutions
 yarn
 
 ln -s ../../../../../node_modules/typeorm/cli.js generated/graphql-server/node_modules/.bin/typeorm || :
-
-yarn tsc --build tsconfig.json

+ 4 - 2
query-node/db-migrate.sh

@@ -8,6 +8,8 @@ set -a
 . ../.env
 set +a
 
-yarn workspace query-node-root db:indexer:migrate
 yarn workspace query-node-root db:schema:migrate
-TYPEORM_DATABASE=${PROCESSOR_DB_NAME} yarn workspace query-node-root db:indexer:migrate
+
+yarn hydra-processor migrate --env=../.env
+
+yarn workspace query-node-root db:init

+ 45 - 0
query-node/manifest.yml

@@ -0,0 +1,45 @@
+version: '0.1'
+description: Joystream query-node manifest file for antioch
+repository: https://github.com/Joystream/joystream
+hydraVersion: '2'
+dataSource:
+  indexerVersion: '3.9'
+  kind: substrate
+  chain: joystream
+entities:
+  - mappings/lib/generated/**/*.model.js
+typegen:
+  metadata:
+    source: ws://localhost:9944
+  events:
+    - contentDirectory.EntityCreated
+    - contentDirectory.EntityRemoved
+    - contentDirectory.EntitySchemaSupportAdded
+    - contentDirectory.EntityPropertyValuesUpdated
+    - contentDirectory.TransactionCompleted
+    - contentDirectory.TransactionFailed
+  outDir: ./mappings/generated-t/types
+  customTypes:
+    lib: '@joystream/types/augment/all/types'
+    typedefsLoc: '../types/augment/all/defs.json'
+mappings:
+  hydraCommonVersion: '2.0.1-beta.0'
+  # js module that exports the handler functions
+  mappingsModule: mappings/lib/mappings
+  # additinal libraries the processor loads
+  # typically it is a module with event and extrinsic types generated by hydra-typegen
+  imports:
+    - mappings/lib/mappings/generated-t/types
+  eventHandlers:
+    - event: contentDirectory.EntityCreated
+      handler: contentDirectory_EntityCreated(DatabaseManager, SubstrateEvent)
+    - event: contentDirectory.EntityRemoved
+      handler: contentDirectory_EntityRemoved(DatabaseManager, SubstrateEvent)
+    - event: contentDirectory.EntitySchemaSupportAdded
+      handler: contentDirectory_EntitySchemaSupportAdded(DatabaseManager, SubstrateEvent)
+    - event: contentDirectory.EntityPropertyValuesUpdated
+      handler: contentDirectory_EntityPropertyValuesUpdated(DatabaseManager, SubstrateEvent)
+    - event: contentDirectory.TransactionCompleted
+      handler: contentDirectory_TransactionCompleted(DatabaseManager, SubstrateEvent)
+    - event: contentDirectory.TransactionFailed
+      handler: contentDirectory_TransactionFailed(DatabaseManager, SubstrateEvent)

+ 1 - 1
query-node/mappings/content-directory/decode.ts

@@ -1,4 +1,4 @@
-import { SubstrateEvent } from '../../generated/indexer'
+import { SubstrateEvent } from '@dzlzv/hydra-common'
 import {
   IClassEntity,
   IProperty,

+ 1 - 1
query-node/mappings/content-directory/default-schemas.ts

@@ -1,7 +1,7 @@
 import Debug from 'debug'
 import { nanoid } from 'nanoid'
 
-import { DB } from '../../generated/indexer'
+import { DatabaseManager as DB } from '@dzlzv/hydra-db-utils'
 import { Channel } from '../../generated/graphql-server/src/modules/channel/channel.model'
 import { Language } from '../../generated/graphql-server/src/modules/language/language.model'
 import { ClassEntity } from '../../generated/graphql-server/src/modules/class-entity/class-entity.model'

+ 1 - 1
query-node/mappings/content-directory/entity/addSchema.ts

@@ -1,4 +1,4 @@
-import { DB } from '../../../generated/indexer'
+import { DatabaseManager as DB } from '@dzlzv/hydra-db-utils'
 import { Channel } from '../../../generated/graphql-server/src/modules/channel/channel.model'
 import { Category } from '../../../generated/graphql-server/src/modules/category/category.model'
 import { KnownLicenseEntity } from '../../../generated/graphql-server/src/modules/known-license-entity/known-license-entity.model'

+ 1 - 1
query-node/mappings/content-directory/entity/create.ts

@@ -1,4 +1,4 @@
-import { DB } from '../../../generated/indexer'
+import { DatabaseManager as DB } from '@dzlzv/hydra-db-utils'
 import { Channel } from '../../../generated/graphql-server/src/modules/channel/channel.model'
 import { Category } from '../../../generated/graphql-server/src/modules/category/category.model'
 import { KnownLicenseEntity } from '../../../generated/graphql-server/src/modules/known-license-entity/known-license-entity.model'

+ 2 - 1
query-node/mappings/content-directory/entity/index.ts

@@ -1,5 +1,6 @@
 import Debug from 'debug'
-import { DB, SubstrateEvent } from '../../../generated/indexer'
+import { SubstrateEvent } from '@dzlzv/hydra-common'
+import { DatabaseManager as DB } from '@dzlzv/hydra-db-utils'
 import { ClassEntity } from '../../../generated/graphql-server/src/modules/class-entity/class-entity.model'
 
 import { decode } from '../decode'

+ 2 - 1
query-node/mappings/content-directory/entity/remove.ts

@@ -1,7 +1,8 @@
 import assert from 'assert'
 import Debug from 'debug'
 
-import { DB } from '../../../generated/indexer'
+import { DatabaseManager as DB } from '@dzlzv/hydra-db-utils'
+
 import { Channel } from '../../../generated/graphql-server/src/modules/channel/channel.model'
 import { Category } from '../../../generated/graphql-server/src/modules/category/category.model'
 import { KnownLicenseEntity } from '../../../generated/graphql-server/src/modules/known-license-entity/known-license-entity.model'

+ 2 - 1
query-node/mappings/content-directory/entity/update.ts

@@ -1,4 +1,5 @@
-import { DB } from '../../../generated/indexer'
+import { DatabaseManager as DB } from '@dzlzv/hydra-db-utils'
+
 import { Channel } from '../../../generated/graphql-server/src/modules/channel/channel.model'
 import { Category } from '../../../generated/graphql-server/src/modules/category/category.model'
 import { KnownLicenseEntity } from '../../../generated/graphql-server/src/modules/known-license-entity/known-license-entity.model'

+ 1 - 1
query-node/mappings/content-directory/get-or-create.ts

@@ -64,7 +64,7 @@ import {
   createVideo,
 } from './entity/create'
 
-import { DB } from '../../generated/indexer'
+import { DatabaseManager as DB } from '@dzlzv/hydra-db-utils'
 
 // Keep track of the next entity id
 async function nextEntityId(db: DB): Promise<NextEntityId> {

+ 8 - 0
query-node/mappings/content-directory/mapping.ts

@@ -1,3 +1,6 @@
+import { DatabaseManager } from '@dzlzv/hydra-db-utils'
+import { SubstrateEvent } from '@dzlzv/hydra-common'
+
 export {
   contentDirectory_EntitySchemaSupportAdded,
   contentDirectory_EntityRemoved,
@@ -8,3 +11,8 @@ export { contentDirectory_TransactionCompleted, contentDirectory_TransactionFail
 
 // Only one time to seed the database
 // export { system_ExtrinsicSuccess } from './initializeDefaultSchemas'
+
+// eslint-disable-next-line @typescript-eslint/naming-convention
+export function system_ExtrinsicSuccess(db: DatabaseManager, event: SubstrateEvent): void {
+  return
+}

+ 3 - 2
query-node/mappings/content-directory/transaction.ts

@@ -1,6 +1,7 @@
 import Debug from 'debug'
 
-import { DB, SubstrateEvent } from '../../generated/indexer'
+import { SubstrateEvent } from '@dzlzv/hydra-common'
+import { DatabaseManager, DatabaseManager as DB } from '@dzlzv/hydra-db-utils'
 import { NextEntityId } from '../../generated/graphql-server/src/modules/next-entity-id/next-entity-id.model'
 import { ClassEntity } from '../../generated/graphql-server/src/modules/class-entity/class-entity.model'
 
@@ -73,7 +74,7 @@ async function getNextEntityId(db: DB): Promise<number> {
 }
 
 // eslint-disable-next-line @typescript-eslint/naming-convention
-export async function contentDirectory_TransactionFailed(db: DB, event: SubstrateEvent): Promise<void> {
+export async function contentDirectory_TransactionFailed(db: DatabaseManager, event: SubstrateEvent): Promise<void> {
   debug(`TransactionFailed event: ${JSON.stringify(event)}`)
 
   const failedOperationIndex = event.params[1].value as number

+ 264 - 0
query-node/mappings/generated-t/types/content-directory.ts

@@ -0,0 +1,264 @@
+import { createTypeUnsafe } from "@polkadot/types/create";
+import { SubstrateEvent, SubstrateExtrinsic } from "@dzlzv/hydra-common";
+import { Codec } from "@polkadot/types/types";
+import { typeRegistry } from ".";
+
+import {
+  Actor,
+  EntityId,
+  FailedAt,
+  SchemaId,
+  SideEffects
+} from "@joystream/types/augment/all/types";
+
+export namespace ContentDirectory {
+  export class EntityCreatedEvent {
+    public readonly expectedParamTypes = ["Actor", "EntityId"];
+
+    constructor(public readonly ctx: SubstrateEvent) {}
+
+    get data(): EntityCreated_Params {
+      return new EntityCreated_Params(this.ctx);
+    }
+
+    validateParams(): boolean {
+      if (this.expectedParamTypes.length !== this.ctx.params.length) {
+        return false;
+      }
+      let valid = true;
+      this.expectedParamTypes.forEach((type, i) => {
+        if (type !== this.ctx.params[i].type) {
+          valid = false;
+        }
+      });
+      return valid;
+    }
+  }
+
+  class EntityCreated_Params {
+    constructor(public readonly ctx: SubstrateEvent) {}
+
+    get actor(): Actor {
+      return createTypeUnsafe<Actor & Codec>(typeRegistry, "Actor", [
+        this.ctx.params[0].value
+      ]);
+    }
+
+    get entityId(): EntityId {
+      return createTypeUnsafe<EntityId & Codec>(typeRegistry, "EntityId", [
+        this.ctx.params[1].value
+      ]);
+    }
+  }
+  export class EntityRemovedEvent {
+    public readonly expectedParamTypes = ["Actor", "EntityId"];
+
+    constructor(public readonly ctx: SubstrateEvent) {}
+
+    get data(): EntityRemoved_Params {
+      return new EntityRemoved_Params(this.ctx);
+    }
+
+    validateParams(): boolean {
+      if (this.expectedParamTypes.length !== this.ctx.params.length) {
+        return false;
+      }
+      let valid = true;
+      this.expectedParamTypes.forEach((type, i) => {
+        if (type !== this.ctx.params[i].type) {
+          valid = false;
+        }
+      });
+      return valid;
+    }
+  }
+
+  class EntityRemoved_Params {
+    constructor(public readonly ctx: SubstrateEvent) {}
+
+    get actor(): Actor {
+      return createTypeUnsafe<Actor & Codec>(typeRegistry, "Actor", [
+        this.ctx.params[0].value
+      ]);
+    }
+
+    get entityId(): EntityId {
+      return createTypeUnsafe<EntityId & Codec>(typeRegistry, "EntityId", [
+        this.ctx.params[1].value
+      ]);
+    }
+  }
+  export class EntitySchemaSupportAddedEvent {
+    public readonly expectedParamTypes = [
+      "Actor",
+      "EntityId",
+      "SchemaId",
+      "SideEffects"
+    ];
+
+    constructor(public readonly ctx: SubstrateEvent) {}
+
+    get data(): EntitySchemaSupportAdded_Params {
+      return new EntitySchemaSupportAdded_Params(this.ctx);
+    }
+
+    validateParams(): boolean {
+      if (this.expectedParamTypes.length !== this.ctx.params.length) {
+        return false;
+      }
+      let valid = true;
+      this.expectedParamTypes.forEach((type, i) => {
+        if (type !== this.ctx.params[i].type) {
+          valid = false;
+        }
+      });
+      return valid;
+    }
+  }
+
+  class EntitySchemaSupportAdded_Params {
+    constructor(public readonly ctx: SubstrateEvent) {}
+
+    get actor(): Actor {
+      return createTypeUnsafe<Actor & Codec>(typeRegistry, "Actor", [
+        this.ctx.params[0].value
+      ]);
+    }
+
+    get entityId(): EntityId {
+      return createTypeUnsafe<EntityId & Codec>(typeRegistry, "EntityId", [
+        this.ctx.params[1].value
+      ]);
+    }
+
+    get schemaId(): SchemaId {
+      return createTypeUnsafe<SchemaId & Codec>(typeRegistry, "SchemaId", [
+        this.ctx.params[2].value
+      ]);
+    }
+
+    get sideEffects(): SideEffects {
+      return createTypeUnsafe<SideEffects & Codec>(
+        typeRegistry,
+        "SideEffects",
+        [this.ctx.params[3].value]
+      );
+    }
+  }
+  export class EntityPropertyValuesUpdatedEvent {
+    public readonly expectedParamTypes = ["Actor", "EntityId", "SideEffects"];
+
+    constructor(public readonly ctx: SubstrateEvent) {}
+
+    get data(): EntityPropertyValuesUpdated_Params {
+      return new EntityPropertyValuesUpdated_Params(this.ctx);
+    }
+
+    validateParams(): boolean {
+      if (this.expectedParamTypes.length !== this.ctx.params.length) {
+        return false;
+      }
+      let valid = true;
+      this.expectedParamTypes.forEach((type, i) => {
+        if (type !== this.ctx.params[i].type) {
+          valid = false;
+        }
+      });
+      return valid;
+    }
+  }
+
+  class EntityPropertyValuesUpdated_Params {
+    constructor(public readonly ctx: SubstrateEvent) {}
+
+    get actor(): Actor {
+      return createTypeUnsafe<Actor & Codec>(typeRegistry, "Actor", [
+        this.ctx.params[0].value
+      ]);
+    }
+
+    get entityId(): EntityId {
+      return createTypeUnsafe<EntityId & Codec>(typeRegistry, "EntityId", [
+        this.ctx.params[1].value
+      ]);
+    }
+
+    get sideEffects(): SideEffects {
+      return createTypeUnsafe<SideEffects & Codec>(
+        typeRegistry,
+        "SideEffects",
+        [this.ctx.params[2].value]
+      );
+    }
+  }
+  export class TransactionCompletedEvent {
+    public readonly expectedParamTypes = ["Actor"];
+
+    constructor(public readonly ctx: SubstrateEvent) {}
+
+    get data(): TransactionCompleted_Params {
+      return new TransactionCompleted_Params(this.ctx);
+    }
+
+    validateParams(): boolean {
+      if (this.expectedParamTypes.length !== this.ctx.params.length) {
+        return false;
+      }
+      let valid = true;
+      this.expectedParamTypes.forEach((type, i) => {
+        if (type !== this.ctx.params[i].type) {
+          valid = false;
+        }
+      });
+      return valid;
+    }
+  }
+
+  class TransactionCompleted_Params {
+    constructor(public readonly ctx: SubstrateEvent) {}
+
+    get actor(): Actor {
+      return createTypeUnsafe<Actor & Codec>(typeRegistry, "Actor", [
+        this.ctx.params[0].value
+      ]);
+    }
+  }
+  export class TransactionFailedEvent {
+    public readonly expectedParamTypes = ["Actor", "FailedAt"];
+
+    constructor(public readonly ctx: SubstrateEvent) {}
+
+    get data(): TransactionFailed_Params {
+      return new TransactionFailed_Params(this.ctx);
+    }
+
+    validateParams(): boolean {
+      if (this.expectedParamTypes.length !== this.ctx.params.length) {
+        return false;
+      }
+      let valid = true;
+      this.expectedParamTypes.forEach((type, i) => {
+        if (type !== this.ctx.params[i].type) {
+          valid = false;
+        }
+      });
+      return valid;
+    }
+  }
+
+  class TransactionFailed_Params {
+    constructor(public readonly ctx: SubstrateEvent) {}
+
+    get actor(): Actor {
+      return createTypeUnsafe<Actor & Codec>(typeRegistry, "Actor", [
+        this.ctx.params[0].value
+      ]);
+    }
+
+    get failedAt(): FailedAt {
+      return createTypeUnsafe<FailedAt & Codec>(typeRegistry, "FailedAt", [
+        this.ctx.params[1].value
+      ]);
+    }
+  }
+}

+ 12 - 0
query-node/mappings/generated-t/types/index.ts

@@ -0,0 +1,12 @@
+import { TypeRegistry } from "@polkadot/types";
+import path from "path";
+import fs from "fs";
+const typeRegistry = new TypeRegistry();
+
+typeRegistry.register(
+  JSON.parse(fs.readFileSync(path.join(__dirname, "typedefs.json"), "utf-8"))
+);
+
+export { typeRegistry };
+
+export * from "./content-directory";

+ 21 - 0
query-node/mappings/package.json

@@ -0,0 +1,21 @@
+{
+  "name": "query-node-mappings",
+  "version": "0.0.1",
+  "description": "Mappings for hydra-processor",
+  "main": "lib/mappings/index.js",
+  "license": "MIT",
+  "scripts": {
+    "build": "rm -rf lib && tsc --build tsconfig.json",
+    "lint": "echo \"Skippinng\"",
+    "clean": "rm -rf lib"
+  },
+  "dependencies": {
+    "@dzlzv/hydra-common": "2.0.1-beta.9",
+    "@polkadot/types": "4.2.1",
+    "warthog": "https://github.com/metmirr/warthog/releases/download/v2.23.0/warthog-v2.23.0.tgz"
+  },
+  "devDependencies": {
+    "ts-node": "^9.0.0",
+    "typescript": "^3.8"
+  }
+}

+ 7 - 7
query-node/indexer-tsconfig.json → query-node/mappings/tsconfig.json

@@ -3,19 +3,19 @@
     "declaration": true,
     "importHelpers": true,
     "module": "commonjs",
+    "outDir": "lib",
+    "rootDirs": ["./"],
     "strict": true,
     "target": "es2017",
+    "noImplicitAny": false,
+    "esModuleInterop": true,
     "experimentalDecorators": true,
     "emitDecoratorMetadata": true,
     "skipLibCheck": true,
-    "sourceMap": true,
-    "inlineSources": false,
-    "strictPropertyInitialization": false,
     "baseUrl": ".",
     "paths": {
-      "@polkadot/types/augment": ["../../../types/augment-codec/augment-types.ts"]
-    },
-    "esModuleInterop": true
+      "@polkadot/types/augment": ["../../types/augment-codec/augment-types.ts"]
+    }
   },
-  "exclude": ["node_modules"]
+  "include": ["./**/*"]
 }

+ 1 - 1
query-node/mappings/types.ts

@@ -1,6 +1,6 @@
 import BN from 'bn.js'
 import { EntityId, SchemaId, ParametrizedClassPropertyValue, ClassId } from '@joystream/types/content-directory'
-import { DB } from '../generated/indexer'
+import { DatabaseManager as DB } from '@dzlzv/hydra-db-utils'
 
 export interface BaseJoystreamMember {
   memberId: BN

+ 7 - 6
query-node/package.json

@@ -15,20 +15,21 @@
     "db:drop": "(cd ./generated/graphql-server && yarn db:drop)",
     "db:migrate": "./db-migrate.sh",
     "db:schema:migrate": "(cd ./generated/graphql-server && yarn db:create && yarn db:sync && yarn db:migrate)",
-    "db:indexer:migrate": "(cd ./generated/indexer && yarn db:migrate)",
-    "codegen:indexer": "yarn hydra-cli codegen --no-install --no-graphql && cp indexer-tsconfig.json generated/indexer/tsconfig.json",
-    "codegen:server": "yarn hydra-cli codegen --no-install --no-indexer",
-    "cd-classes": "ts-node scripts/get-class-id-and-name.ts",
+    "codegen": "hydra-cli codegen",
+    "codegen:noinstall": "hydra-cli codegen --no-install",
     "integration-tests": "./run-tests.sh",
+    "typegen": "rm -rf ./mappings/generated-t/ && hydra-typegen typegen manifest.yml --debug",
     "db:init": "(cd ./generated/graphql-server && TYPEORM_LOGGING=true ts-node ../../scripts/initializeDefaultSchemas.ts)"
   },
   "author": "",
   "license": "ISC",
   "devDependencies": {
-    "@dzlzv/hydra-cli": "^0.0.24"
+    "@dzlzv/hydra-cli": "0.1.8-1",
+    "@dzlzv/hydra-processor": "2.1.0-beta.4",
+    "@dzlzv/hydra-typegen": "2.1.0-beta.4"
   },
   "dependencies": {
-    "@dzlzv/hydra-indexer-lib": "^0.0.22-legacy.1.26.1",
+    "@dzlzv/hydra-db-utils": "^2.0.1-beta.0",
     "@joystream/types": "^0.15.0",
     "@types/bn.js": "^4.11.6",
     "@types/debug": "^4.1.5",

+ 2 - 8
query-node/processor-start.sh

@@ -4,12 +4,6 @@ set -e
 SCRIPT_PATH="$(dirname "${BASH_SOURCE[0]}")"
 cd $SCRIPT_PATH
 
-# set +a
-# . ../.env
-# export TYPEORM_DATABASE=${PROCESSOR_DB_NAME}
-
-export TYPEORM_DATABASE=${PROCESSOR_DB_NAME:=query_node_processor}
-
-cd ./generated/indexer
 yarn
-DEBUG=${DEBUG} yarn start:processor --env ../../../.env
+
+yarn hydra-processor run --env=../.env

+ 0 - 3
query-node/run-tests.sh

@@ -35,9 +35,6 @@ docker-compose up -d db
 # Migrate the databases
 yarn workspace query-node-root db:migrate
 
-# Seed initial schemas
-yarn workspace query-node-root db:init
-
 docker-compose up -d graphql-server
 
 # Start the joystream-node before the indexer

+ 2 - 2
query-node/scripts/initializeDefaultSchemas.ts

@@ -6,7 +6,7 @@ loadConfig()
 
 import BN from 'bn.js'
 import { nanoid } from 'nanoid'
-import { SnakeNamingStrategy } from '@dzlzv/hydra-indexer-lib/lib'
+import { SnakeNamingStrategy } from '@dzlzv/hydra-db-utils'
 import { createConnection, ConnectionOptions, getConnection, EntityManager } from 'typeorm'
 
 import { Video } from '../generated/graphql-server/src/modules/video/video.model'
@@ -105,7 +105,7 @@ export async function main(): Promise<void> {
     // ///////// Channel /////////////////
 
     // ///////// Category /////////////////
-    const category = new Category({ ...commonProperties, name: `Category(0) ${nanoid()}` })
+    const category = new Category({ ...commonProperties, name: `Other` })
     await db.save<Category>(category)
     // ///////// Category /////////////////
 

File diff suppressed because it is too large
+ 311 - 247
yarn.lock


Some files were not shown because too many files changed in this diff