Xpressengine 3 (XE 3) - Core 쪽 마이그레이션 코드 작동시키기

Xpressengine 3 (XE 3) 에서 멀티사이트 지원을 위한 기능 개선되면서 site_key 칼럼이 특정 테이블에 생성되어 있지 않아 사이트 내 몇 몇 기능이 작동하지 않는 문제가 있었습니다.

그래서 문제가 생긴 테이블에 마이그레이션 코드를 추가했다.

그리고 마이그레이션이 제대로 작동하는지 확인하기 위해 플러그러인의 boot 메소드에 아래 코드를 작성해 강제적으로 마이그레이션을 진행했습니다.

작성된 코드는 코어 (core) 에서 제공하는 마이그레이션 코드를 실행합니다. (위치:  \xpressengine\migrations\ 내 생성된 php 파일들)


 

use Illuminate\\Filesystem\\Filesystem;
use Xpressengine\\Support\\Migration;

public function boot()
{
	$files = app(Filesystem::class)->files(base_path('migrations'));
	
	foreach ($files as $file) {
	    $name = lcfirst(str_replace('Migration', '', basename($file, '.php')));
	
	    $class = "\\\\Xpressengine\\\\Migrations\\\\".basename($file, '.php');
	    $migration = new $class();
	    /** @var Migration $migration */
	
	    if($migration->checkUpdated() === false) {
	        $migration->update();
	    }
	}
}

 

  • share