Пространства имен в миграциях

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Sansurf
Сообщения: 10
Зарегистрирован: 2018.02.11, 23:24

Пространства имен в миграциях

Сообщение Sansurf » 2018.05.18, 18:19

В гайде https://www.yiiframework.com/doc/guide/ ... migrations,
в подзаголовке "Миграции с пространсвом имен" приведен пример:

Код: Выделить всё

return [
    'controllerMap' => [
        'migrate' => [
            'class' => 'yii\console\controllers\MigrateController',
            'migrationNamespaces' => [
                'app\migrations', // Общие миграции приложения
                'module\migrations', // Миграции одного из модулей проекта
                'some\extension\migrations', // Миграции одного из расширений
            ],
        ],
    ],
];
Когда я пытаюсь прописать мои миграции по этому примеру,
в консоли у меня дублируется каждая миграция из дефолтного пути
('app\migrations', // Общие миграции приложения):

app\migrations\m180421_155809_insert_into_user
m180421_155809_insert_into_user

Пытался прописать

Код: Выделить всё

namespace app\migrations
в этих миграциях - не помогает.

Если вообще убрать строку 'app\migrations', из настроек, тогда миграции не дублируются,
но мне хотелось бы указать порядок, в котором будут применяться миграции:

Код: Выделить всё

'migrationNamespaces' => [
  'app\migrations',
  'rico\yii2images\migrations' // Миграции модуля для работы с фото
],
Но миграции из второго нэймспейса у меня почему-то всегда встает первой,
вне зависимости в каком порядке я тут прописываю их

Sansurf
Сообщения: 10
Зарегистрирован: 2018.02.11, 23:24

Re: Пространства имен в миграциях

Сообщение Sansurf » 2018.05.18, 19:56

С порядком миграций разобрался - просто метку времени в названии класса надо поменять,
но почему записи дублируются?
Где-то видимо по умолчанию настроено, что основные миграции поднимаются из каталога migrations корня,
тогда в документации надо бы отметить этот момент.
В общем удаляю строку 'app\migrations' из migrationNamespaces[]

Nex-Otaku
Сообщения: 798
Зарегистрирован: 2016.07.09, 21:07

Re: Пространства имен в миграциях

Сообщение Nex-Otaku » 2018.05.23, 17:11

Была такая же проблема.

Разработчиками предполагается, что вы будете использовать либо все "namespaced" миграции, либо все "не-namespaced". Поэтому да, придётся удалить.

Ответить