2015-07-28 4 views
2

Я использую yii2 в первый раз, и я хочу попробовать yii-миграции. Проблема: Я создал миграционную файл сПроблемы миграции Yii2

php yii migrate/create new_table

файл создается. затем я ввожу новые данные таблицы в файл миграции. и когда я бегу php yii migrate я получил ошибку

Exception 'ReflectionException' with message 'Class db does not exist'
in /var/www/yii2.uz/vendor/yiisoft/yii2/di/Container.php:415
чем проблема?

мой console/config/main.php:

<?php 
$params = array_merge(
    require(__DIR__ . '/../../common/config/params.php'), 
    require(__DIR__ . '/../../common/config/params-local.php'), 
    require(__DIR__ . '/../../common/config/main-local.php'), 
    require(__DIR__ . '/params.php'), 
    require(__DIR__ . '/params-local.php') 
    ); 
    return [ 
    'id' => 'app-console', 
    'basePath' => dirname(__DIR__), 
    'bootstrap' => ['log'], 
    'controllerNamespace' => 'console\controllers', 
    'components' => [ 
     'log' => [ 
      'targets' => [ 
       [ 
        'class' => 'yii\log\FileTarget', 
        'levels' => ['error', 'warning'], 
       ], 
      ], 
     ], 
    ], 
    'params' => $params, 
    ]; 

и мой миграции файла:

установки компонента
<?php use yii\db\Schema; 
     use yii\db\Migration; 

     class m150727_125205_new_table extends Migration 
     { 
     public function up() 
     { 
     $this->createTable('test',[ 
      'id'=> Schema::TYPE_PK, 
      'name'=> Schema::TYPE_STRING 
     ]); 
    } 

    public function down() 
    { 
     echo "m150727_125205_new_table cannot be reverted.\n"; 

     return false; 
    } 
+0

Пожалуйста, добавьте созданный контент миграции и конфигурацию консоли. – arogachev

ответ

4

DB для консоли отсутствует, добавьте в console/config/main-local.php файл для местного развития:

'components' => [ 
    'db' => [ 
     'class' => 'yii\db\Connection', 
     'dsn' => 'mysql:host=localhost;dbname=dbname', 
     'username' => 'username', 
     'password' => 'password', 
     'charset' => 'utf8', 
    ], 
], 

Для производственного сервера исправьте этот файл в соответствии с настройками db.

Отметьте, что -local файлы находятся в списке .gitignore.

+0

та же ошибка, пожалуйста, помогите – Faradox

+0

@Faradox проверить, что вы написали все параметры справа. –

0

Если вы используете передовые приложения, вы должны поставить под окружающую среду/DEV/общий/основной-local.php следующий код, чтобы объявить компонент «DB» в приложении

'components' => [ 
'db' => [ 
    'class' => 'yii\db\Connection', 
    'dsn' => 'mysql:host=localhost;dbname=dbname', 
    'username' => 'username', 
    'password' => 'password', 
    'charset' => 'utf8', 
], 

] ,

Если вы хотите, чтобы на самом деле приложение было применено к приложению в расширенном шаблоне, вы должны запустить ./yii init или php yii init.

Если вы используете базовое приложение, вы должны поместить его в общий файл main/local-local.php.

Важно, чтобы это было распространено, а не только консоль, так как вы, вероятно, будете использовать одну и ту же базу данных с консоли и веб-приложений.

Смежные вопросы