vesper icon indicating copy to clipboard operation
vesper copied to clipboard

Need a way to set typeorm connection charset

Open gregwym opened this issue 6 years ago • 3 comments

Hi Vesper team,

First of all, thanks for this great framework! It works quite well together with TypeORM.

One thing that I couldn't find a solution myself is a way to set the connection charset for MySQL. With Typeorm, I can do the following

  // read connection options from ormconfig file (or ENV variables)
  const connectionOptions = await getConnectionOptions();

  // create a connection using modified connection options
  const connection = await createConnection({
    ...connectionOptions,
    charset: 'UTF8MB4_GENERAL_CI',
  } as MysqlConnectionOptions);

It's not been loaded from option reader so this seems the only option. I'm thinking we can either allow passing a connection to Vesper or Vesper reuse the existing default connection automatically (instead of die with AlreadyHasActiveConnectionError).

gregwym avatar Oct 14 '18 16:10 gregwym

I have also tried query set names utf8mb4 after bootstrap. Even if SHOW VARIABLES indicates character_set_client is using utf8mb4 already, Typeorm isn't getting emojis correctly.

gregwym avatar Oct 21 '18 13:10 gregwym

Update: Adding useContainer(Container); before bootstrap together with set names utf8md4 seems solved it.

gregwym avatar Oct 21 '18 15:10 gregwym

Update: SET NAMES utf8mb4 does not solve all the issues. I will dig more into the code to see if its possible to solve it on typeorm layer properly.

gregwym avatar Nov 05 '18 13:11 gregwym