| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 | <?php/** * @link http://www.yiiframework.com/ * @copyright Copyright (c) 2008 Yii Software LLC * @license http://www.yiiframework.com/license/ */use yii\base\InvalidConfigException;use yii\caching\DbCache;use yii\db\Migration;/** * Initializes Cache tables. * * @author Misbahul D Munir <misbahuldmunir@gmail.com> * @since 2.0.7 */class m150909_153426_cache_init extends Migration{    /**     * @throws yii\base\InvalidConfigException     * @return DbCache     */    protected function getCache()    {        $cache = Yii::$app->getCache();        if (!$cache instanceof DbCache) {            throw new InvalidConfigException('You should configure "cache" component to use database before executing this migration.');        }        return $cache;    }    /**     * {@inheritdoc}     */    public function up()    {        $cache = $this->getCache();        $this->db = $cache->db;        $tableOptions = null;        if ($this->db->driverName === 'mysql') {            // http://stackoverflow.com/questions/766809/whats-the-difference-between-utf8-general-ci-and-utf8-unicode-ci            $tableOptions = 'CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE=InnoDB';        }        $this->createTable($cache->cacheTable, [            'id' => $this->string(128)->notNull(),            'expire' => $this->integer(),            'data' => $this->binary(),            'PRIMARY KEY ([[id]])',            ], $tableOptions);    }    /**     * {@inheritdoc}     */    public function down()    {        $cache = $this->getCache();        $this->db = $cache->db;        $this->dropTable($cache->cacheTable);    }}
 |