Errors Of The Console Command

I run my console command, the errors:

d:\xampp\htdocs\trackstar>protected\yiic shell

Yii Interactive Tool v1.1 (based on Yii v1.1.15-dev)

Please type ‘help’ for help. Type ‘exit’ to quit.

>> rbac

exception ‘CDbException’ with message 'CDbCommand failed to execute the SQL statement: SQLSTATE[3D00

0]: Invalid catalog name: 1046 No database selected. The SQL statement executed was: DELETE FROM `Au

thAssignment`’ in D:\xampp\htdocs\YII\framework\db\CDbCommand.php:358

Stack trace:

#0 D:\xampp\htdocs\YII\framework\db\CDbCommand.php(1300): CDbCommand->execute(Array)

#1 D:\xampp\htdocs\YII\framework\web\auth\CDbAuthManager.php(560): CDbCommand->delete('AuthAssignmen

t’)

#2 D:\xampp\htdocs\YII\framework\web\auth\CDbAuthManager.php(550): CDbAuthManager->clearAuthAssignme

nts()

#3 D:\xampp\htdocs\trackstar\protected\commands\shell\RbacCommand.php(23): CDbAuthManager->clearAll(

)

#4 D:\xampp\htdocs\trackstar\protected\commands\shell\RbacCommand.php(102): RbacCommand->actionCreat

eRBAC()

#5 D:\xampp\htdocs\YII\framework\cli\commands\ShellCommand.php(125): RbacCommand->run(Array)

#6 D:\xampp\htdocs\YII\framework\cli\commands\ShellCommand.php(99): ShellCommand->runShell()

#7 D:\xampp\htdocs\YII\framework\console\CConsoleCommandRunner.php(71): ShellCommand->run(Array)

#8 D:\xampp\htdocs\YII\framework\console\CConsoleApplication.php(92): CConsoleCommandRunner->run(Arr

ay)

#9 D:\xampp\htdocs\YII\framework\base\CApplication.php(180): CConsoleApplication->processRequest()

#10 D:\xampp\htdocs\YII\framework\yiic.php(33): CApplication->run()

#11 D:\xampp\htdocs\trackstar\protected\yiic.php(7): require_once(‘D:\xampp\htdocs…’)

#12 {main}




<?php

class RbacCommand extends CConsoleCommand{

	private $_authManager;

	public function getHelp(){

		if (($this->_authManager = Yii::app()->authManager) === null){

			echo <<<END

Error: There is no authManager object.

Please configure a component named 'authManager' in main.php.

END;

		}

	

		echo <<<END

This command will create three role: reader, member, owner

and following permission:

create,read,update,delete project

create,read,update,delete issue

create,read,update,delete user\n

END;

	}

	

	/**

	 * create role, permission and operation

	 */

	public function actionCreateRBAC(){

 		$this->_authManager->clearAll();

		$roleAdmin = $this->_authManager->createRole('admin', 'administor');

		$roleReader = $this->_authManager->createRole('reader', 'reader of project');

		$roleMember = $this->_authManager->createRole('member', 'member of project');

		$roleOwner = $this->_authManager->createRole('owner', 'administrator');

	

		$roleProject = $this->_authManager->createRole('projectAdmin', 'project admin');

		$roleIssue = $this->_authManager->createRole('issueAdmin', 'issue admin');

		$roleUser = $this->_authManager->createRole('memberAdmin', 'user admin');

	

		$taskSystem = $this->_authManager->createTask('systemManage', 'System task');

		$taskProject = $this->_authManager->createTask('projectManage', 'Project manage');

		$taskIssue = $this->_authManager->createTask('issueManage', 'Issue manage');

		$taskMember = $this->_authManager->createTask('memberManage', 'Member manage');

	

		$taskSystem->addChild('projectManage');

		$taskSystem->addChild('issueManage');

		$taskSystem->addChild('memberManage');

	

		$readIssue = $this->_authManager->createOperation('readIssue', 'Read issue');

		$createIssue = $this->_authManager->createOperation('createIssue', 'create issue');

		$updateIssue = $this->_authManager->createOperation('updateIssue', 'update issue');

		$deleteIssue = $this->_authManager->createOperation('deleteIssue', 'delete issue');

	

		$readProject = $this->_authManager->createOperation('readProject', 'Read project');

		$createProject = $this->_authManager->createOperation('createProject', 'create project');

		$updateProject = $this->_authManager->createOperation('updateProject', 'update project');

		$deleteProject = $this->_authManager->createOperation('deleteProject', 'delete project');

	

		$readMember = $this->_authManager->createOperation('readMember', 'Read member');

		$createMember = $this->_authManager->createOperation('createMember', 'create member');

		$updateMember = $this->_authManager->createOperation('updateMember', 'update member');

		$deleteMember = $this->_authManager->createOperation('deleteMember', 'delete member');

	

		$taskIssue->addChild('readIssue');

		$taskIssue->addChild('createIssue');

		$taskIssue->addChild('updateIssue');

		$taskIssue->addChild('deleteIssue');

	

		$taskProject->addChild('readProject');

		$taskProject->addChild('createProject');

		$taskProject->addChild('updateProject');

		$taskProject->addChild('deleteProject');

	

		$taskMember->addChild('readMember');

		$taskMember->addChild('createMember');

		$taskMember->addChild('updateMember');

		$taskMember->addChild('deleteMember');

	

		$roleProject->addChild('projectManage');

		$roleIssue->addChild('issueManage');

		$roleUser->addChild('memberManage');

	

		$roleReader->addChild('readIssue');

		$roleReader->addChild('readProject');

		$roleReader->addChild('readMember');

	

		$roleMember->addChild('reader');

		$roleMember->addChild('createIssue');

		$roleMember->addChild('updateIssue');

		$roleMember->addChild('deleteIssue');

	

		$roleOwner->addChild('member');

		$roleOwner->addChild('createProject');

		$roleOwner->addChild('updateProject');

		$roleOwner->addChild('deleteProject');

	

		$roleAdmin->addChild('reader');

		$roleAdmin->addChild('member');

		$roleAdmin->addChild('owner');

		$roleAdmin->addChild('projectAdmin');

		$roleAdmin->addChild('issueAdmin');

		$roleAdmin->addChild('memberAdmin');

	

		$this->_authManager->save();

		echo 'Roles and Permission have been generated successfully.';

	}

	

	public function run($args){

		$this->actionCreateRBAC();

	}

}



my config/console.php





return array(

	'basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..',

	'name'=>'My Console Application',


	// preloading 'log' component

	'preload'=>array('log'),


	// application components

	'components'=>array(

		'db'=>array(

				'connectionString' => 'mysql:host=xxxx;dbname=trackstar_test',

				'emulatePrepare' => true,

				'username' => 'root',

				'password' => '********************',

				'charset' => 'utf8',

				'tablePrefix' => 'tbl_',

		),

		'log'=>array(

			'class'=>'CLogRouter',

			'routes'=>array(

				array(

					'class'=>'CFileLogRoute',

					'levels'=>'error, warning',

				),

			),

		),

		//RBAC configuration

		'authManager' => array(

				'class' => 'CDbAuthManager',

				'connectionID' => 'db',

		),

	),

);

Well, let’s start with the obvious: Does the trackstar_test db really exist?

yes,database trackstar_test is on my server. :rolleyes:

Hm, well. I can’t give you any more advice than checking your dsn string carefully as MySQL seems to have a problem finding said database. See also: