Я хочу перенести мою тестовую базу данных с помощью команды migrate / fresh --db = array, как указано в справке:
--db: Connection|array|string
the DB connection object or the application component ID of the DB connection to use
when applying migrations. Starting from version 2.0.3, this can also be a configuration array
for creating the object.
, но я не знаю, как указать массив в командеline.
Я пробовал следующую команду:
php yii migrate/fresh --db="dns=sqlite:@app/runtime/test.db"
, но я получаю
Exception 'yii\base\UnknownPropertyException' with message 'Setting unknown property: yii\db\Connection::0'
Просмотр консоли / Controller / runAction:
if (in_array($name, $options, true)) {
$default = $this->$name;
if (is_array($default)) {
$this->$name = preg_split('/\s*,\s*(?![^()]*\))/', $value);
} elseif ($default !== null) {
settype($value, gettype($default));
$this->$name = $value;
} else {
$this->$name = $value;
}
Похоже, $ this-> db должен быть инициализирован как массив, если я хочу иметь возможность передавать массив из командной строки.
Однако, даже если я задаю его как массивкоманда preg_split индексирует массив configuracion для соединения по номеру, а не по строковому ключу, поэтому этот массив не может создать соединение БД.