Laravel - 跨平台多次使用迁移脚本

时间:2014-07-01 04:53:56

标签: php laravel laravel-4 migration

我只是想为演示应用程序提供新数据。

我想要实现的是预先准备好架构和一组数据,并在运行演示应用程序时准备好迁移。简单地说,每次用户运行应用程序时,数据库都将被转储新数据。

这可能吗?在Laravel 4中,我知道当我通过CLI生成迁移脚本时,它似乎有一个附加到文件名的时间戳,我想知道这是否会阻止迁移在以后的几天内执行?

谢谢大家。

1 个答案:

答案 0 :(得分:0)

  

我想要实现的是预先准备好架构和一组数据,并在运行演示应用程序时准备好迁移。简单地说,每次用户运行应用程序时,数据库都将被转储新数据。

说到拥有一组准备好的数据,我认为Database Seeding接近你想要的。

文档还提到了如何一起使用迁移和种子。虽然您需要自己决定如何进行迁移+种子。例如。由artisan命令触发,触发每个页面加载等。

回滚所有迁移并再次全部迁移(reference):

  

php artisan migrate:refresh

     

php artisan migrate:refresh --seed

您还可以使用fzaninotto/Faker这样的包来帮助您为您生成更接近真实的种子数据。


  

在Laravel 4中,我知道当我通过CLI生成迁移脚本时,它似乎有一个附加到文件名的时间戳,我想知道这是否会阻止迁移在以后的日子里被执行?

迁移文件名中的时间戳仅用于指示应运行迁移的顺序。因此,在添加列之前尝试添加列时,最终不会运行迁移。只要您执行php artisan migrate:refresh并且已在迁移文件中正确设置了up()down(),就不会有问题。

虽然请注意,如果您在团队中,请务必检查迁移顺序,因为两个或更多成员可以相互并行创建迁移文件。