链接地址:
https://www.jellythink.com/archives/234
前言
我们在开发的时候总是会遇到这样的场景。比如我们开发了一个系统,这个系统在上线时,或者第一次部署时,都需要在数据库中导入一些初始化数据,系统启动都是需要依赖这些初始化数据的。
在开发基于Laravel的应用之前,我们都是维护一个上线的DB变更脚本,或者也叫DB初始化脚本。系统部署时,将该SQL脚本交给DBA去执行。这样就会出现一个问题,在项目组内很多时候有的开发人员对SQL语句不熟悉,这就需要开发人员将他的需求告知DBA,DBA来完成SQL语句的编写;又或者DBA在执行SQL脚本的时候,对业务不熟悉,只能盲目的进行执行,出现错误也很难搞定。
为了解决上述的问题,Laravel框架提供了一个面向开发者友好话的工具——seeds,通过这个工具或者命令,我们可以将我们需要进行初始化的数据进行PHP代码化,你不需要编写SQL语句,每个开发人员只需要维护好自己的初始化内容即可,这样大大减少了开发人员的负担,降低了出错的概率,提高了部署的速度和开发人员的效率。下面就对Laravel中的seeds进行详细的讲解和总结。
Laravel中的seeds
当我们通过
composer create-project --prefer-dist laravel/laravel blog
命令创建一个基于Laravel框架的工程之后,我们就可以通过命令
php artisan make:seeder ProcessTableSeeder
创建一个seeder,创建成功后,命令行会输出以下内容:
Seeder created successfully.
接下来在项目的database/seeds/目录下会生成一个名为ProcessTableSeeder.php的文件,并会生成以下模板代码:
class ProcessTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
//
}
}