*新增資料表(使用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
沒有留言:
張貼留言