Typeorm pool doesn't exist in replication

1.2k views Asked by At

typegraphql, typeorm, Mysql with master slave replication.

I have configured mysql with master and slave databases with separate instances and its working fine. I have encounter an error

enter image description here

while connecting via typeorm. Here's my ormconfig.json

{
 "type": "mysql",
 "logging": true,
 "replication": {
 "master": 
     {
        "host": "192.168.0.250",
        "port": 3306,
        "username": "root",
        "password": "test#123",
        "database": "master",
        "synchronize": true,
        "extra": {
           "connectionLimit": 5
       }          
     }
  ,
 "slaves": [
  {
     "host": "192.168.0.175",
     "port": 3306,
     "username": "root",
     "password": "test#123",
     "database": "master",
     "synchronize": true,
     "extra": {
        "connectionLimit": 5
    }                
  }
 ]
 },
 "entities": [
   "src/entity/**/*.ts"
 ],
 "migrations": [
  "src/migration/**/*.ts"
 ],
 "subscribers": [
   "src/subscriber/**/*.ts"
 ],
 "cli": {
   "entitiesDir": "src/entity",
   "migrationsDir": "src/migration",
   "subscribersDir": "src/subscriber"
 }
 }

My index.ts file with database connection as

import { gqSchema } from './schema';
import "reflect-metadata";
import { createConnection } from "typeorm";
import { ApolloServer } from "apollo-server";


async function main() { 
 await createConnection().then(async(res) => {
    console.log(res)
    console.log("Database Connected")
    const schema = await gqSchema()
    const server = new ApolloServer({ 
        schema,
        context: ({ req }: any) => ({ req })
    })
    await server.listen(4000)
    console.log("Server has started!")
}).catch(err => {
    console.log("err", err)
})    
}

main();

And my resolver.ts file

@Resolver()
export class UserResolver {

 /**
 * query 
 */
@Authorized()
@Query(() => User)
async hello(
    @Arg("firstName") firstName: string, 
): Promise<User | undefined > {
    const slaveQueryRunner = getConnection().createQueryRunner("slave");
    try {
        const connection = getConnection().getRepository(User);
        const usersList  = await connection.createQueryBuilder()            
        .from(User, "user")
        .setQueryRunner(slaveQueryRunner)
        .where("user.firstName = ", {firstName})
        .getOne();
        console.log(usersList)

    } finally {
        slaveQueryRunner.release();            
    }

    
}
}
0

There are 0 answers