Laravel数据迁移

数据迁移,可以理解为,通过运行php文件创建数据表并向数据表添加数据。
优点:可以记录数据库状态的改变,可以对数据库的状态进行回退。
数据库迁移的步骤:
-> 创建一个PHP文件,用于设计表结构
-> 执行该PHP文件,根据表结构创建表
-> 创建一个PHP文件,用于填充表的数据
-> 执行该PHP文件,完成表中数据的填充

1、迁移文件的设计

数据库迁移文件的设计实际上就是对数据表的操作和维护,在laravel框架中是通过结构生成器(Schema类)来实现的,
常用字段类型方法:
$table->increments('id');创建一个主键是id,并且是自增的。
$table->char('name',4);相当于char类型,并带有长度
$table->decimal('amount',5,2);相当于decimal类型,并带有精度与基数。
$table->integer('number');相当于 int类型
$table->softDeletes();加入deleted_at字段软删除使用
$table->string('name',32);相当于varchar类型,并指定长度。
$table->timestamps();加入created_atupdated_at字段
$table->rememberToken();加入remember_token字段,使用类型为varchar(100)
$table->float('amount');相当于float类型
常用修饰方法:
$table->float('amount')->first();将此字段放在表的首位(只能在MySQL中使用)
$table->float('amount')->after('id');将此字段放在指定字段后面(只能在MySQL中使用)
$table->string('email')->nullable();表示此字段允许为NULL
$table->string('email')->notNull();表示此字段不允许为NULL
$table->string('email')->default('');指定此字段的默认值
$table->integer('number')->unsigned();表示整数为非负数
$table->integer('number')->comment('my comment');添加注释信息

索引方法表
$table->primary('id');设置主键
$table->primary(array('first','last'));设置复合主键
$table->unique('email');设置唯一索引
$table->index('');设置基本索引

2、建立迁移文件(用于设计表结构)

-> 使用artisanmake:migration命令生成数据表的迁移文件:

php  artisan  make:migration  create_表名_table

// 创建新的数据表,生成的迁移文件中会带有表名及基本的表字段
php  artisan  make:migration  create_表名_table  --create=表名 

// 修改已有数据表
php  artisan  make:migration  modify_表名_table  --table=表名 

// 创建模型同步创建迁移文件
php artisan make:model 模型名  -m

注:如果表名有前缀,--create=表名--table=表名中表名不需要包含前缀
-> 迁移文件在database/migrations目录下
-> 通过artisan命令创建的迁移文件,默认包含up()down()方法:
up()方法是执行迁移命令时创建的表结构
down()方法是执行回滚时删除的表结构
示例:







3、执行数据迁移

-> 执行迁移命令:

php  artisan  migrate //执行的是所有未执行过迁移的文件;

-> 执行回滚迁移:

php  artisan  migrate:rollback //执行最后一次迁移文件的down方法 

注意:在执行时,可以把laravel中默认的两个迁移文件给删除掉。
-> 其他相关命令:

php artisan migrate:status //查看数据库迁移文件的执行情况
php artisan migrate:refresh //先执行所有的迁移文件的down方法,再执行所有的迁移文件的up方法
php artisan migrate:reset //执行所有迁移文件的down方法

注意:第一次执行php artisan migrate时,会自动创建一个migrations表,用于记录迁移文件信息的,batch字段表示批次,回滚时按批次来。

4、创建数据填充文件(种子文件)

使用artisanmake:seeder命令生成数据表的填充文件(填充器)

php  artisan  make:seeder  填充器名

示例:向users作者表填充数据


设置添加的数据,可以使用DB类,也可以使用模型操作。要使用模型操作,先要引入模型。
设置添加的数据如下:

5、执行填充文件

①执行单个种子文件

php  artisan  db:seed  --class = 填充器名


填充效果如下:

注意:如果在执行填充文件时,出现错误“Class UserTableSeeder does not exist”,则使用composer dump-autoload命令,优化一下自动加载类。
②执行多个种子文件

php  artisan  db:seed

需要在DatabaseSeeder.php中添加$this->call(自定义种子文件类名::class)

猜你喜欢

转载自blog.csdn.net/csdn_heshangzhou/article/details/83034967