74 lines
1.3 KiB
PHP
74 lines
1.3 KiB
PHP
<?php
|
|
|
|
/**
|
|
* This file is part of CodeIgniter 4 framework.
|
|
*
|
|
* (c) CodeIgniter Foundation <admin@codeigniter.com>
|
|
*
|
|
* For the full copyright and license information, please view
|
|
* the LICENSE file that was distributed with this source code.
|
|
*/
|
|
|
|
namespace CodeIgniter\Database;
|
|
|
|
use Config\Database;
|
|
|
|
/**
|
|
* Class Migration
|
|
*/
|
|
abstract class Migration
|
|
{
|
|
/**
|
|
* The name of the database group to use.
|
|
*
|
|
* @var string
|
|
*/
|
|
protected $DBGroup;
|
|
|
|
/**
|
|
* Database Connection instance
|
|
*
|
|
* @var ConnectionInterface
|
|
*/
|
|
protected $db;
|
|
|
|
/**
|
|
* Database Forge instance.
|
|
*
|
|
* @var Forge
|
|
*/
|
|
protected $forge;
|
|
|
|
/**
|
|
* Constructor.
|
|
*
|
|
* @param Forge $forge
|
|
*/
|
|
public function __construct(?Forge $forge = null)
|
|
{
|
|
$this->forge = $forge ?? Database::forge($this->DBGroup ?? config('Database')->defaultGroup);
|
|
|
|
$this->db = $this->forge->getConnection();
|
|
}
|
|
|
|
/**
|
|
* Returns the database group name this migration uses.
|
|
*
|
|
* @return string
|
|
*/
|
|
public function getDBGroup(): ?string
|
|
{
|
|
return $this->DBGroup;
|
|
}
|
|
|
|
/**
|
|
* Perform a migration step.
|
|
*/
|
|
abstract public function up();
|
|
|
|
/**
|
|
* Revert a migration step.
|
|
*/
|
|
abstract public function down();
|
|
}
|