- 2017.09.19
- 조회수 1,706
- 댓글수 0
XE 3.0.0-beta.24 에는 XE3 PHP 지원 버전 변경, Laravel 5.5 LTS 적용, 데이터베이스 테이블 컬럼 이름 변경 등 많은 변경사항이 있어 업데이트에 각별한 주의가 필요합니다.
많은 파일이 수정되야 하므로 운영중인 소스 및 데이터베이스를 반드시 백업해 주시고
별도로 추가한 플러그인 테이블의 컬럼 이름이 camel case 일 경우는 snake case 변경해 주어야 합니다. (예 myColumn 은 my_column 으로 변경)
FTP 업데이트
1. latest.zip 을 다운로드 하여 전체 파일을 업로드 합니다.
이번 버전에서는 changed.xxx.zip 파일로 업데이트가 불가합니다.
2. 안전모드로 진입합니다.
http://my.domain/__safe_mode 로 이동하고 관리자 계정으로 로그인합니다.
3. 페이지에서 캐시삭제, XE3.0.0-beta.24 데이터베이스 테이블 컬럼 이름 변경을 실행합니다.
4. 사용중인 플러그이을 최신 버전으로 업데이트 합니다.
게시판, 에디터, 댓글 등 플러그인을 자료실에서 다운받아 업로드 합니다.
5. 코어 업데이트를 실행합니다.
http://my.domain/settings/update 으로 이동해서 업데이트 버튼을 클릭합니다. 이 동작은 오래 걸립니다.
Git
1. 최신 버전을 pull 받습니다.
2. composer update를 실행합니다.
아래와 같은 에러가 발행하게 되는것은 정상적인 스텝입니다. 다른 오류가 발생한 경우는 개발팀에게 알려주세요.
2. 안전모드로 진입합니다.
http://my.domain/__safe_mode 로 이동하고 관리자 계정으로 로그인합니다.
3. 페이지에서 캐시삭제, XE3.0.0-beta.24 데이터베이스 테이블 컬럼 이름 변경을 실행합니다.
4. 사용중인 플러그이을 최신 버전으로 업데이트 합니다.
게시판, 에디터, 댓글 등 플러그인을 자료실에서 다운받아 업로드 합니다.
5. composer update 다시 실행하여 업데이트를 마무리 합니다.
6. 코어 업데이트를 실행합니다.
http://my.domain/settings/update 으로 이동해서 업데이트 버튼을 클릭합니다. 이 동작은 오래 걸립니다.
알려진 문제점
- debugbar 문제
debug를 켜고 진행할 경우 문제가 발생할 수 있습니다. config/production/app.php 에서 debug 를 false 로 변경하도록 합니다.
debugbar 에서 사용자 정보를 표시할 때 사용하는 인터페이스에서 충돌이 었을 것으로 생각됩니다.
우선 core 의 Guest.php 파일을 수정하고 사용 바랍니다.
$this->throwNotSupportedException(); 코드를 제거하고 빈 문자열을 반환 하도록 수정합니다.
// core/src/Xpressengine/User/Models/Guest.php
..
/**
* Get the unique identifier for the user.
*
* @return mixed
*/
public function getAuthIdentifier()
{
// $this->throwNotSupportedException();
return '';
}
..
- Illegal offset type in unset
플러그인에서 binding, signleton 등 코드를 변경해야합니다.
Github 에 수정된 내용을 보고 설명 드립니다. (https://github.com/xpressengine/plugin-board/commit/81835029085e237e5fa29de7b135740b6bb7e057#diff-e462b50c2a47baf644da800a0e7c4453)
src/Plugin/Resources.php 파일 커밋 로그를 보면 아래와 같이 수정된 내용을 확인할 수 있습니다.
// 수정 전
$app->singleton(['xe.plugin.board' => Plugin::class], function ($app) {
return XePlugin::getPlugin('board');
});
// 수정 후
$app->singleton(Plugin::class, function ($app) {
return XePlugin::getPlugin('board');
});
$app->alias(Plugin::class, 'xe.plugin.board');
Laravel 에서 제공하는 singleton 메소드 첫번째 인자에 array 를 넘기던 것이 string 을 넘기도록 변경되었습니다.
- method get path does not exist
Illuminate\Routing\Route.php 에 getPath 메소드 deprecated, url 로 대체합니다.
0개 댓글