Laravel 5.3:逐步迁移

时间:2016-10-17 12:55:26

标签: php laravel laravel-5 migration database-migration

我想知道是否有可能在Laravel 5.3中逐个迁移迁移。

我无法使--step选项正常工作,并且文档仅提及此选项以与rollbackrefresh命令一起使用。

// this works
php artisan migrate:rollback --step=1
// this doesn't work
php artisan migrate --step=1

谢谢你,祝你有愉快的一天

2 个答案:

答案 0 :(得分:5)

没有正式的方法可以逐个运行迁移,因为通常没有必要,因为它们同时添加的便利性对laravel来说是一个好处。

--step=x仅在回滚迁移时使用。

如果您确实希望逐个运行迁移,那么实现此目的的方法是将它们添加到每次运行php artisan migrate的项目中。

我希望这有帮助,评论是否还有其他需要或不清楚的地方。

答案 1 :(得分:0)

如果要逐个运行迁移,可以尝试以下操作:

( \
  mkdir migrations-tmp; \
  for i in database/migrations/[0-9]*.php; do \
    echo `basename $i`:; \
    cp -a $i migrations-tmp/ && \
    php artisan migrate --force --path `pwd`/migrations-tmp --pretend -vvvv; \
    rm -f migrations-tmp/*; \
  done \
); \
rm -rf migrations-tmp

说明:

  • 制作临时目录
  • 表示每个迁移文件
    • 输出其名称
    • 将迁移文件复制到临时目录
    • 通过指定迁移文件的路径
    • 来执行此单个迁移
    • 从临时目录中删除迁移文件
  • 删除临时目录