2013-08-25 2 views
6

У меня возникли некоторые контрольно-пропускной пункт на Laravel 4.Laravel 4 мигрирует: Откат с --path на CLI ремесленника

Поскольку я не могу сделать artisan:migrate генерировать миграции из внутренних папок app/database/migrations(например: приложения/базы данных/миграция/app1)

у меня есть это на моей пользовательской команде app:migrate

/* default path */ 
$this->call('migrate'); 

/* custom path */ 
$this->call('migrate', array('--path' => 'app/database/migrations/app1')); 

, но я также хочу в app:refresh команде, которая будет откатить все миграции из пользовательского пути, затем из пути по умолчанию .. затем повторно мигрировать и высевать все так же, как migrate:refresh --seed

Как мне это отменить? вызова:

$this->call('migrate:rollback', array('--path' => 'app/database/migrations/app1')); 

выдаст ошибку о том,

[InvalidArgumentException] 
The "--path" option does not exist. 

может кто-нибудь помочь, пожалуйста.

спасибо!

+0

Ну, атм, не существует на самом деле не так. Только фактическое имя файла хранится в базе данных без его пути и нет параметра пути для команды отката. Разумеется, вы могли бы реализовать этот параметр, но это было бы плохо, если бы вы выполнили миграции из нескольких путей. Лучшее, вероятно, найдет способ хранить в БД, откуда это произошло, развить репо и предложить изменение. – rmobis

+0

Ничего, подумал. – rmobis

ответ

5

Все, что вам нужно сделать, это убедиться, что классы миграции могут быть автоматически загружены. Самый простой способ сделать это, чтобы добавить путь к папке, вы сохраняя их composer.json «s autoload.classmap:

... 
"autoload": { 
    "classmap": [ 
     ... 
     "app/database/migrations/app1", 
    ] 
}, 
+0

классный. это работает! благодаря! – reikyoushin

-2

Вы должны повторно выполнить миграцию с параметром «--path» вручную для этого случая.

+0

ли это забрасывать старые таблицы, снова вставлять их и снова заново их семенить? – reikyoushin

+0

Я проверил и да, они не удаляют старые данные из БД, прежде чем вы снова семени. – reikyoushin

Смежные вопросы