我只是想为演示应用程序提供新数据。
我想要实现的是预先准备好架构和一组数据,并在运行演示应用程序时准备好迁移。简单地说,每次用户运行应用程序时,数据库都将被转储新数据。
这可能吗?在Laravel 4中,我知道当我通过CLI生成迁移脚本时,它似乎有一个附加到文件名的时间戳,我想知道这是否会阻止迁移在以后的几天内执行?
谢谢大家。
答案 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()
,就不会有问题。
虽然请注意,如果您在团队中,请务必检查迁移顺序,因为两个或更多成员可以相互并行创建迁移文件。