2018年12月11日 星期二

新增資料表(使用migration方式)

*新增資料表(使用migration方式):

使用migration方式,方便追蹤管理

1.建立migration檔案:
php artisan make:migration create_資料表名稱_table

註:檔名格式參考 database/migrations/create_資料表名稱_table.php

---------------
2.到migration檔案中設定資料表欄位:
database\migrations\

"欄位類型"詳細資料:
https://laravel.com/docs/5.7/migrations#columns

https://ithelp.ithome.com.tw/articles/10185340

例如:
$table->string('name', 100); //varchar
$table->string('remember_token', 100)->nullable();
$table->char('name', 100);
$table->dateTime('created_at');
$table->integer('votes');
$table->text('description');
$table->timestamps();
$table->increments('id'); //自動遞增UNSIGNED INTEGER(primary key)

---------------
3.在資料庫建立資料表:

php artisan migrate

有問題:
Illuminate\Database\QueryException  : SQLSTATE[42000]:
Syntax error or access violation: 1071 Specified key was too long;
max key length is 1000 bytes
(SQL: alter table `users` add unique `users_email_unique`(`email`))

解決:

方法1:
設定varchar長度

$table->string('email',30);

方法2:
改檔案 app\Providers\AppServiceProvider.php

AppServiceProvider.php 修改如下:

use Illuminate\Support\Facades\Schema;   <=增加此行

public function boot()
{
    Schema::defaultStringLength(191);   <=增加此行
}

*恢復上一版本的 migration:
php artisan migrate:rollback



沒有留言:

張貼留言