This extension provides the vertica integration for the Yii2 framework.
It includes basic querying/search support and also implements the ActiveRecord
pattern that allows you to store active
records in vertica.
Powered by odbc_connect();
To use this extension, you have to configure the Connection class in your application configuration:
return [
//....
'components' => [
'vertica' => [
'class' => 'yii\vertica\Connection',
'dsn' => 'Driver=Vertica;Server=localhost;Database=my-database;',
'username' => 'dbadmin',
'password' => 'password-base',
],
]
];
and console.php for migrate
return [
'controllerMap' => [
'migrate-vertica' => 'yii\vertica\controllers\MigrateVerticaController',
],
];
Performance tested on version 7.1.2
The preferred way to install this extension is through composer.
Either add
{
"require": {
"keygenqt/yii2-vertica": "*",
}
}
to the require section of your composer.json.
The following is an example model called Admins
:
namespace app\models;
use \yii\data\ActiveDataProvider;
use \yii\vertica\ActiveRecord;
class Admins extends ActiveRecord
{
public static function tableName()
{
return 'admins';
}
/**
* @return array validation rules for model attributes.
*/
public function rules()
{
return [
[['username', 'password_hash', 'blocked_at', 'role', 'created_at', 'updated_at'], 'safe']
];
}
//...
public function search($params)
{
$query = Admins::find();
$dataProvider = new ActiveDataProvider([
'query' => $query,
]);
if (!($this->load($params) && $this->validate())) {
return $dataProvider;
}
$query->andFilterWhere(['like', 'username', $this->username]);
$query->andFilterWhere(['like', 'password_hash', $this->password_hash]);
$query->andFilterWhere(['=', 'created_at', $this->created_at]);
$query->andFilterWhere(['=', 'updated_at', $this->updated_at]);
return $dataProvider;
}
}