laravel

laravel 数据库迁移 migration

日期:2017-02-28 阅读:1664

dmandwp系统 - wordpress系统和DM系统区块建站>>


进入网易云课堂播放
    |    更多视频教程>


数据库配置: 在根目录下的.env

----------
数据库迁移:用于数据库版本控制

https://laravel-china.org/docs/5.4/migrations

1 生成迁移#
php artisan make:migration create_users_table --create=users

php artisan make:migration add_votes55_to_users_table --table=users
php artisan make:migration add_votes_to_users_table --table=users


-------
删除迁移文件: 
复位autoload: composer dump-autoload
如果创建迁移后,再删除这个文件,就不能再创建同名的了。因为这些文件还在系统里。
vendor\composer\autoload_classmap.php
'AddVotes55ToUsersTable' => $baseDir . '/database/migrations/2017_02_27_113559_add_votes55_to_users_table.php',

vendor\composer\autoload_static.php
  public static $classMap = array (
        'AddVotes55ToUsersTable' => __DIR__ . '/../..' . '/database/migrations/2017_02_27_113559_add_votes55_to_users_table.php',
解决方法:        
https://segmentfault.com/q/1010000007324603
所以要复位autoload:
composer dump-autoload
然后数据库的migration表里,也要删除包含这个文件的记录。
        
-----------------


2 运行迁移#
使用 migrate Artisan 命令,来运行所有未运行过的迁移:

php artisan migrate   -- 运行 未运行过的迁移


 
 报错:
 因为 MySQL release 版本低于5.7.7 
 SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long;
 http://stackoverflow.com/questions/23786359/laravel-migration-unique-key-is-too-long-even-if-specified
 https://laravel-news.com/laravel-5-4-key-too-long-error
 
 解决方法:
 编辑:\app\Providers \AppServiceProvider.php

 加上:

use Illuminate\Support\Facades\Schema;

/**
 * 引导任何应用程序服务。
 *
 * @return void
 */
public function boot()
{
    Schema::defaultStringLength(191);
}

 

---------------

3 回滚迁移  -- 注意,回滚时,只是运行迁移文件的down的内容,如果down里没有内容。那这样的回滚不会影响数据库。

php artisan migrate:rollback  回滚最后一次迁移
php artisan migrate:rollback --step=5
php artisan migrate:reset   重置  -  回滚应用程序中的所有迁移
 
php artisan migrate:reset  回滚应用程序中的所有迁移


4 使用单个命令来执行回滚或迁移#
migrate:refresh 命令不仅会回滚数据库的所有迁移还会接着运行 migrate 命令

php artisan migrate:refresh  重构数据库

 php artisan migrate:refresh  --seed
 
 php artisan migrate:refresh --step=5
 
5  创建以及修改数据表
https://laravel-china.org/docs/5.4/migrations#creating-tables

索引和外键  

--------
  

 

 

<<点击返回