public function testCreateDb() { $step1 = new Step1(); $step1->setAttributes($this->data, false); $this->assertTrue($step1->createDb()); $conn_string = 'mysql:host=' . $step1->db_host . ';dbname=' . $step1->db_name; $con = new CDbConnection($conn_string, $step1->db_login, $step1->db_pass); try { $con->init(); } catch (Exception $e) { $this->assert('Db was not created'); } $con->createCommand('DROP DATABASE IF EXISTS ' . $con->quoteTableName($this->data['db_name']))->execute(); }
public function pdoErrorHandler($code, $message, $file, $line) { if (!self::$pdo_error_happend) { self::$pdo_error_happend = true; Yii::app()->handleError($code, 'Невозможно подключиться к базе данных по указанным параметрам', $file, $line); } }
public function actionStep1() { if (isFrontUserLoggedIn()) { $model = new Step1(); if (isset($_POST['Step1'])) { $model->attributes = $_POST['Step1']; // validate user input and redirect to previous page if valid if ($model->validate()) { $visit_code = $model->visit_code; Yii::app()->session['visit_code'] = $visit_code; $this->redirect(array("step2")); } } $this->render('step1', array('model' => $model)); } else { $this->redirect(array("/user")); } }
public function actionStep2() { $model = new Step2(); $form = new Form('install.Step2', $model); $this->performAjaxValidation($model); if ($form->submitted() && $model->validate()) { $configs = CMap::mergeArray(Yii::app()->user->getState('install_configs'), $model->getConfigs()); Yii::app()->user->setState('install_configs', $configs); $step1 = Step1::loadFromSession(); Yii::app()->setComponent('db', $step1->createDbConnection()); //install modules Yii::app()->setModules($model->modules); //$step1->deleteDisableModules(); //migrate Yii::app()->getModule('users'); Yii::app()->executor->migrate('up --module=main'); foreach (Yii::app()->getModules() as $id => $data) { if ($id == 'main') { continue; } Yii::app()->getModule($id); if (is_dir(Yii::getPathOfAlias($id . '.migrations'))) { $response = Yii::app()->executor->migrate('up --module=' . $id); if (stripos($response, 'successfully') === false) { echo $response; die; } } } //create admin user $user = new User(); list($user->name) = explode('@', $model->admin_email); $user->name = ucfirst($user->name); $user->email = $model->admin_email; $user->password = UserIdentity::crypt($model->admin_pass); $user->status = User::STATUS_ACTIVE; $user->save(false); //set admin $auth = Yii::app()->authManager; $auth->clearAll(); $auth->createRole('Admin'); $auth->assign('Admin', $user->id); //commands collect Yii::app()->executor->addCommandsFromModules(Yii::app()->getModules()); //run install method foreach (Yii::app()->getModules() as $id => $conf) { @mkdir(Yii::getPathOfAlias('webroot.upload.' . $id), 0755, true); Yii::app()->getModule($id)->install(); } $model->saveInSession(); //install base modules $this->redirect('/install.php?r=/install/install/step3'); } $this->render('step2', array('form' => $form)); }