日期: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
索引和外键
--------