PHP Fatal error: Class 'Fuel\Tasks\Install' not foundWorked around by copy pasting the install task's code into my task. 2. Cannot call Migrate::latest() in task.
1046 - No database selected [ CREATE TABLE IF NOT EXISTS `migration` (
`current` int(11) DEFAULT '0' NOT NULL
) DEFAULT CHARACTER SET utf8; ] in COREPATH/classes/database/mysql/connection.php on line 203
Could not find a workaround.
Full code:
class Setup {
public static function run() {
$db_name = 'darkcrm';
// Drop database
try {
\Fuel\Core\DBUtil::drop_database($db_name);
\Fuel\Core\Cli::write('Successfully dropped database.', 'green');
} catch (\Fuel\Core\Database_Exception $ex) {
\Fuel\Core\Cli::error($ex->getMessage());
}
// Create database
try {
\Fuel\Core\DBUtil::create_database($db_name);
\Fuel\Core\Cli::write('Successfully created database.', 'green');
} catch (\Fuel\Core\Database_Exception $ex) {
\Fuel\Core\Cli::error($ex->getMessage());
}
// Install
// Install::run(); // Fails - PHP Fatal error: Class 'Fuel\Tasks\Install' not found
// Workaround:
$writable_paths = array(APPPATH . 'cache', APPPATH . 'logs', APPPATH . 'tmp', APPPATH . 'config');
foreach ($writable_paths as $path) {
if (@chmod($path, 0777)) {
\Cli::write('Made writable: ' . $path, 'green');
} else {
\Cli::write('Failed to make writable: ' . $path, 'red');
}
}
// Migrate
\Fuel\Core\Migrate::latest();
// Insert core data
$core_data = \Fuel\Core\File::read(APPPATH . 'sql' . DS . 'core_data.sql', true);
$insert_array = explode(';', $core_data);
\Fuel\Core\DB::start_transaction();
try {
foreach ($insert_array as $insert_statement) {
$result = \Fuel\Core\DB::query($insert_statement, \Fuel\Core\DB::INSERT)->execute();
if (!$result) {
throw new \Fuel\Core\Database_Exception('Failed to execute INSERT query');
}
}
\Fuel\Core\DB::commit_transaction();
\Fuel\Core\Cli::write('Successfully executed core data INSERT queries.', 'green');
} catch (\Fuel\Core\Database_Exception $ex) {
\Fuel\Core\DB::rollback_transaction();
\Fuel\Core\Cli::error($ex->getMessage());
}
}
}
It looks like you're new here. If you want to get involved, click one of these buttons!