protected function _createdb($check = false) {
		$this->out(__d('cake_installer', 'Creating database and initializing data'));
		$this->hr();

		$resultCheck = $this->InstallerCheck->checkDbTableExists();
		if ($resultCheck) {
			if ($check) {
				$this->out('<success>' . __d('cake_installer', 'This action has already been successfully completed. Skipped.') . '</success>');

				return true;
			} elseif ($this->useActionNotify) {
				if (!$this->_checkSure(__d('cake_installer', 'All schemas exists. Re-create?'))) {
					return true;
				}
			}
		}

		$this->out(__d('cake_installer', 'Create schema of application'));
		$this->hr();
		$yesArg = '';
		if (!empty($this->param('yes'))) {
			$yesArg = ' --yes';
		}
		$defaultSchemaArgs = 'schema create --quiet' . $yesArg;
		$this->dispatchShell($defaultSchemaArgs);
		$this->hr();
		$this->nl(1);
		$schemaList = $this->ConfigInstaller->getListSchemaCreation();
		if (empty($schemaList)) {
			return true;
		}

		$this->out(__d('cake_installer', 'Create additional schemes'));
		foreach ($schemaList as $schemaName) {
			if (empty($schemaName)) {
				continue;
			}

			$this->hr();
			$this->out(__d('cake_installer', 'Create additional scheme: \'%s\'', $schemaName));
			$this->hr();
			$this->nl(1);
			$additionalSchemaArgs = 'schema create ' . $schemaName . ' --quiet' . $yesArg;
			$this->dispatchShell($additionalSchemaArgs);
		}
		$this->hr();
		$this->out('<info>' . __d('cake_installer', 'Creating additional schemes completed.') . '</info>');

		return true;
	}