Added support for upgrading and downgrading manually the database via the CLI

This commit is contained in:
Alex Tselegidis 2021-11-06 15:17:03 +01:00
parent 0a88442aa2
commit bcc9b88623
3 changed files with 34 additions and 2 deletions

View File

@ -167,6 +167,8 @@ class Console extends EA_Controller {
'',
'⇾ php index.php console migrate',
'⇾ php index.php console migrate fresh',
'⇾ php index.php console migrate up',
'⇾ php index.php console migrate down',
'⇾ php index.php console seed',
'⇾ php index.php console install',
'⇾ php index.php console backup',

View File

@ -42,5 +42,13 @@ require_once __DIR__ . '/../../system/libraries/Migration.php';
* @property EA_URI $uri
*/
class EA_Migration extends CI_Migration {
//
/**
* Get the current migration version.
*
* @return int
*/
public function current_version(): int
{
return $this->_get_version();
}
}

View File

@ -45,10 +45,32 @@ class Instance {
/**
* Migrate the database to the latest state.
*
* @param string $type Provide "fresh" to revert previous migrations and start from the beginning.
* @param string $type Provide "fresh" to revert previous migrations and start from the beginning or "up"/"down" to step.
*/
public function migrate(string $type = '')
{
$current_version = $this->CI->migration->current_version();
if ($type === 'up')
{
if ( ! $this->CI->migration->version($current_version + 1))
{
show_error($this->CI->migration->error_string());
}
return;
}
if ($type === 'down')
{
if ( ! $this->CI->migration->version($current_version - 1))
{
show_error($this->CI->migration->error_string());
}
return;
}
if ($type === 'fresh' && ! $this->CI->migration->version(0))
{
show_error($this->CI->migration->error_string());