[英]yii2 mongodb migration doesn't work
我在yii2中使用mongodb,我想使用它的遷移。
這是我的模特班。
namespace app\models;
use yii\mongodb\ActiveRecord;
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 yii\mongodb\Migration;
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' => 'app\commands',
'components' => [
'cache' => [
'class' => 'yii\caching\FileCache',
],
'log' => [
'targets' => [
[
'class' => 'yii\log\FileTarget',
'levels' => ['error', 'warning'],
],
],
],
'db' => $db,
'mongodb' => [
'class' => \yii\mongodb\Connection::class,
'dsn' => 'mongodb://cafegardesh:12345@localhost:27017/cafegardesh',
]
],
'modules' => [
'taxonomy-term'=>[
'class'=> \mhndev\yii2TaxonomyTerm\Module::class
]
],
'params' => $params,
/*
'controllerMap' => [
'fixture' => [ // Fixture generation command line.
'class' => 'yii\faker\FixtureController',
],
],
*/
];
if (YII_ENV_DEV) {
// configuration adjustments for 'dev' environment
$config['bootstrap'][] = 'gii';
$config['modules']['gii'] = [
'class' => 'yii\gii\Module',
];
}
return $config;
這是我執行的命令:
php yii migrate/up --db=mongodb
我得到以下錯誤:
Exception 'yii\base\InvalidConfigException' with message '"mongodb" refers to a yii\mongodb\Connection component. yii\db\Connection is expected.'
in /home/majid/Projects/Gardesh-Tour-Backend/vendor/yiisoft/yii2/di/Instance.php:135
MongoDB組件擁有自己的遷移控制器。 改用它。
在控制台配置中添加
'controllerMap' => [
'mongodb-migrate' => 'yii\mongodb\console\controllers\MigrateController'
],
現在您可以使用php yii mongodb-migrate/up
。
默認將mongodb
組件作為db
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.