@@ -69,7 +69,7 @@ export interface ClickHouseDriverOptions {
6969 database ?: string ,
7070 readOnly ?: boolean ,
7171 // TODO how to treat this in a BC way?
72- queryOptions ?: object ,
72+ // queryOptions?: object,
7373
7474 /**
7575 * Data source name.
@@ -95,13 +95,25 @@ interface ClickhouseDriverExportRequiredAWS {
9595}
9696
9797interface ClickhouseDriverExportKeySecretAWS extends ClickhouseDriverExportRequiredAWS {
98- keyId ? : string ,
99- secretKey ? : string ,
98+ keyId : string ,
99+ secretKey : string ,
100100}
101101
102102interface ClickhouseDriverExportAWS extends ClickhouseDriverExportKeySecretAWS {
103103}
104104
105+ type ClickHouseDriverConfig = {
106+ url : string ,
107+ username : string ,
108+ password : string ,
109+ readOnly : boolean ,
110+ // TODO why separate object?
111+ queryOptions : {
112+ database : string ,
113+ } ,
114+ exportBucket : ClickhouseDriverExportAWS | null ,
115+ } ;
116+
105117export class ClickHouseDriver extends BaseDriver implements DriverInterface {
106118 /**
107119 * Returns default concurrency value.
@@ -116,7 +128,7 @@ export class ClickHouseDriver extends BaseDriver implements DriverInterface {
116128
117129 protected readonly readOnlyMode : boolean ;
118130
119- protected readonly config : any ;
131+ protected readonly config : ClickHouseDriverConfig ;
120132
121133 /**
122134 * Class constructor.
@@ -146,6 +158,9 @@ export class ClickHouseDriver extends BaseDriver implements DriverInterface {
146158
147159 const username = getEnv ( 'dbUser' , { dataSource } ) ;
148160 const password = getEnv ( 'dbPass' , { dataSource } ) ;
161+ const database = ( getEnv ( 'dbName' , { dataSource } ) as string ) ||
162+ config && config . database ||
163+ 'default' ;
149164 this . config = {
150165 // host: getEnv('dbHost', { dataSource }),
151166 // port: getEnv('dbPort', { dataSource }),
@@ -163,12 +178,10 @@ export class ClickHouseDriver extends BaseDriver implements DriverInterface {
163178 password,
164179 // protocol: getEnv('dbSsl', { dataSource }) ? 'https:' : 'http:',
165180 queryOptions : {
166- database :
167- getEnv ( 'dbName' , { dataSource } ) ||
168- config && config . database ||
169- 'default'
181+ database,
170182 } ,
171183 exportBucket : this . getExportBucket ( dataSource ) ,
184+ readOnly : ! ! config . readOnly ,
172185 ...config
173186 } ;
174187
@@ -581,7 +594,7 @@ export class ClickHouseDriver extends BaseDriver implements DriverInterface {
581594
582595 protected getExportBucket (
583596 dataSource : string ,
584- ) : ClickhouseDriverExportAWS | undefined {
597+ ) : ClickhouseDriverExportAWS | null {
585598 const supportedBucketTypes = [ 's3' ] ;
586599
587600 const requiredExportBucket : ClickhouseDriverExportRequiredAWS = {
@@ -593,7 +606,7 @@ export class ClickHouseDriver extends BaseDriver implements DriverInterface {
593606 region : getEnv ( 'dbExportBucketAwsRegion' , { dataSource } ) ,
594607 } ;
595608
596- const exportBucket : Partial < ClickhouseDriverExportAWS > = {
609+ const exportBucket : ClickhouseDriverExportAWS = {
597610 ...requiredExportBucket ,
598611 keyId : getEnv ( 'dbExportBucketAwsKey' , { dataSource } ) ,
599612 secretKey : getEnv ( 'dbExportBucketAwsSecret' , { dataSource } ) ,
@@ -615,10 +628,10 @@ export class ClickHouseDriver extends BaseDriver implements DriverInterface {
615628 ) ;
616629 }
617630
618- return exportBucket as ClickhouseDriverExportAWS ;
631+ return exportBucket ;
619632 }
620633
621- return undefined ;
634+ return null ;
622635 }
623636
624637 public async isUnloadSupported ( ) {
0 commit comments