Страница 1 из 1

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

Добавлено: 2018.05.18, 18:19
Sansurf
В гайде 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' // Миграции модуля для работы с фото
],
Но миграции из второго нэймспейса у меня почему-то всегда встает первой,
вне зависимости в каком порядке я тут прописываю их

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

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

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

Добавлено: 2018.05.23, 17:11
Nex-Otaku
Была такая же проблема.

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