마이그레이션
[마이그레이션]
1. 마이그레이션 생성(default:user관련)
php artisan migrate 명령실행시에
table 에 migrations, password_resets, users 가 생성되면 제대로 된거다.
* 만약 Syntax error or access violation: 1071 Specified key was too long 라는 에러가 뜬다면 설정 문제이므로
- app/providers/AppServiceProvider.php
[추가]
use Illuminate\Support\Facades\Schema;
public function boot()
{
Schema::defaultStringLength(191);
}
2. 마이그레이션 기능을 이용한 테이블 생성
장점 : DB스키마를 쉽게공유, 마이그레이션 이력이 남는다
- php artisan make:migration {tablename} // database/migrations 폴더에 {tablename}이름의 테이블이 생성됨
- config/database/migrations에 위에 {tablename}이 생성된다.
- schema builder(DB종류에 상관없이 DB를 조작할 수 있게 해준다.)를 이용한다.
위에 생성된 migrations파일에 up 메소드에 아래 내용과 같은 소스를 입력(up:테이블생성, down:롤백)
[소스]
// 마이그레이션을 실행할때 해당 테이블을 생성해줌
Schema::create('lecture', function ($table) {
$table->increments('no');
$table->timestamps(); // created_at, updateed_at 컬럼을 생성해준다.
});
- 테이블삭제는
Schema::drop('lecture'); // 테이블 삭제
Schema::drop('lecture'); // 테이블 유무 확인 후 삭제한다.
- php artisan migrate 명령어를 이용하여 테이블을 생성하자.
3. DB 마이그레이션 롤백
- php artisan migrate:rollback // 롤백을 하면 테이블과 마이그레이션 로그가 삭제된다.
4. 컬럼 삭제
if(Schema::hasColumn('lecture', 'title'))
{
Schema::table('lecture', function($table)
{
$table->dropCloumn('title');
});
}