Skip to content
Snippets Groups Projects
Database.php 2.97 KiB
Newer Older
  • Learn to ignore specific revisions
  • 
    /**
     * Database Configuration
     *
     * @package Config
     */
    
    class Database extends \CodeIgniter\Database\Config
    {
    
        /**
         * The directory that holds the Migrations
         * and Seeds directories.
         *
         * @var string
         */
        public $filesPath = APPPATH . 'Database/';
    
        /**
         * Lets you choose which connection group to
         * use if no other is specified.
         *
         * @var string
         */
        public $defaultGroup = 'default';
    
        /**
         * The default database connection.
         *
         * @var array
         */
        public $default = [
            'DSN' => '',
            'hostname' => 'localhost',
            'username' => '',
            'password' => '',
            'database' => '',
            'DBDriver' => 'MySQLi',
            'DBPrefix' => '',
            'pConnect' => false,
            'DBDebug' => ENVIRONMENT !== 'production',
            'cacheOn' => false,
            'cacheDir' => '',
            'charset' => 'utf8',
            'DBCollat' => 'utf8_general_ci',
            'swapPre' => '',
            'encrypt' => false,
            'compress' => false,
            'strictOn' => false,
            'failover' => [],
            'port' => 3306,
        ];
    
        /**
         * This database connection is used when
         * running PHPUnit database tests.
         *
         * @var array
         */
        public $tests = [
            'DSN' => '',
            'hostname' => '127.0.0.1',
            'username' => '',
            'password' => '',
            'database' => ':memory:',
            'DBDriver' => 'SQLite3',
            'DBPrefix' => 'db_', // Needed to ensure we're working correctly with prefixes live. DO NOT REMOVE FOR CI DEVS
            'pConnect' => false,
            'DBDebug' => ENVIRONMENT !== 'production',
            'cacheOn' => false,
            'cacheDir' => '',
            'charset' => 'utf8',
            'DBCollat' => 'utf8_general_ci',
            'swapPre' => '',
            'encrypt' => false,
            'compress' => false,
            'strictOn' => false,
            'failover' => [],
            'port' => 3306,
        ];
    
        //--------------------------------------------------------------------
    
        public function __construct()
        {
            parent::__construct();
    
            // Ensure that we always set the database group to 'tests' if
            // we are currently running an automated test suite, so that
            // we don't overwrite live data on accident.
            if (ENVIRONMENT === 'testing') {
                $this->defaultGroup = 'tests';
    
                // Under Travis-CI, we can set an ENV var named 'DB_GROUP'
                // so that we can test against multiple databases.
                if ($group = getenv('DB')) {
                    if (is_file(TESTPATH . 'travis/Database.php')) {
                        require TESTPATH . 'travis/Database.php';
    
                        if (
                            !empty($dbconfig) &&
                            array_key_exists($group, $dbconfig)
                        ) {
                            $this->tests = $dbconfig[$group];
                        }
                    }
                }
            }
        }
    
        //--------------------------------------------------------------------