Yii2 MongoDB迁移不起作用



我在yii2中使用mongodb,我想使用它的迁移。

这是我的模型课。

namespace appmodels;
use yiimongodbActiveRecord;
class Company extends ActiveRecord
{

    /**
     * @return array
     */
    public static function collectionName()
    {
        return ['cafegardesh','companies'];
    }

    /**
     * @return array
     */
    public function attributes()
    {
        return ['_id', 'name', 'address', 'status'];
    }

    /**
     * @return array
     */
    public function rules()
    {
        return [
            [['name'], 'required'],
        ];
    }

,这是我的迁移文件:

use yiimongodbMigration;
class m160904_053937_create_companies_collection extends Migration
{
    public function up()
    {
    }
    public function down()
    {
        echo "m160904_053937_create_companies_collection cannot be reverted.n";
        return false;
    }
    /*
    // Use safeUp/safeDown to run migration code within a transaction
    public function safeUp()
    {
    }
    public function safeDown()
    {
    }
    */
}
这是我的控制台配置文件:
Yii::setAlias('@tests', dirname(__DIR__) . '/tests/codeception');
$params = require(__DIR__ . '/params.php');
$db = require(__DIR__ . '/db.php');
$config = [
    'id' => 'basic-console',
    'basePath' => dirname(__DIR__),
    'bootstrap' => ['log'],
    'controllerNamespace' => 'appcommands',
    'components' => [
        'cache' => [
            'class' => 'yiicachingFileCache',
        ],
        'log' => [
            'targets' => [
                [
                    'class' => 'yiilogFileTarget',
                    'levels' => ['error', 'warning'],
                ],
            ],
        ],
        'db' => $db,
        'mongodb' => [
            'class' => yiimongodbConnection::class,
            'dsn' => 'mongodb://cafegardesh:12345@localhost:27017/cafegardesh',
        ]
    ],
    'modules' => [
        'taxonomy-term'=>[
            'class'=> mhndevyii2TaxonomyTermModule::class
        ]
    ],

    'params' => $params,
    /*
    'controllerMap' => [
        'fixture' => [ // Fixture generation command line.
            'class' => 'yiifakerFixtureController',
        ],
    ],
    */
];
if (YII_ENV_DEV) {
    // configuration adjustments for 'dev' environment
    $config['bootstrap'][] = 'gii';
    $config['modules']['gii'] = [
        'class' => 'yiigiiModule',
    ];
}
return $config;

,这是我执行的命令:

php yii migrate/up --db=mongodb

,我得到以下错误:

Exception 'yiibaseInvalidConfigException' with message '"mongodb" refers to a yiimongodbConnection component. yiidbConnection is expected.'
in /home/majid/Projects/Gardesh-Tour-Backend/vendor/yiisoft/yii2/di/Instance.php:135

MongoDB组件有自己的迁移控制器。

在控制台配置中添加

'controllerMap' => [
    'mongodb-migrate' => 'yiimongodbconsolecontrollersMigrateController'
],

现在你可以使用php yii mongodb-migrate/up

默认dbmongodb分量

最新更新