sanchezzzhak / kak-clickhouse

Yii2 ext. ClickHouse
69 stars 43 forks source link

load TableSchema when table name contain dot #47

Closed FlashEnix closed 4 years ago

FlashEnix commented 4 years ago

RU: В случае, если tableName в модели указана как [schema].[tableName] не удается получить модель через методы $model->find()->one(), данные отдаются сервером Clickhouse, но при заполнении модели не находится схема таблицы, т.к. имя ищем в default схеме. При это, если указать $model->find()->asArray()->one(), данные отдаются, т.к. модель не заполняется.

ENG: In case tableName in models is indicated as [schema]. [TableName] can’t get the model using the methods $model->find()->one(), data is sent from the Clickhouse server, but when populated model, does not find schema, because we are looking name in the default schema. In this case, if you specify $model->find()->asArray()->one(), the data is given, because the model is not populated.

sanchezzzhak commented 4 years ago

В настройке соединения можно указать, другую бд не default. Задать другую БД для AR модели можно вот так

public static function getDb() {
    return Yii::$app->clickhouse2;
}
FlashEnix commented 4 years ago

Это понятно. Но в случае, если таблицы для удобства раскиданы по разным схемам, то нецелесообразно раздувать на каждую схему свой конфиг. Тем более джоины между этими таблицами вероятно не будут работать через QueryBuilder.

sanchezzzhak commented 4 years ago

Join специфическая штука в CH и на сколько я помню через querybulder она толком не реализована, не было еще необходимости.