Laravel 데이터베이스: 시작하기 편집하기

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.

편집을 취소할 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 게시해주세요.

최신판 당신의 편집
4번째 줄: 4번째 줄:
;<nowiki>데이터베이스: 시작하기</nowiki>
;<nowiki>데이터베이스: 시작하기</nowiki>
https://laravel.com/docs/11.x/database
https://laravel.com/docs/11.x/database
 
{{작성중}}
==소개==
==소개==
거의 모든 최신 웹 애플리케이션은 데이터베이스와 상호작용합니다. Laravel은 원시 SQL, [[Laravel 쿼리 빌더|유창한 쿼리 빌더]], [[Laravel Eloquent|Eloquent ORM]]을 사용하여 지원되는 다양한 데이터베이스에서 데이터베이스와의 상호작용을 매우 간단하게 만듭니다 . 현재 Laravel은 5개의 데이터베이스에 대한 퍼스트파티 지원을 제공합니다:
거의 모든 최신 웹 애플리케이션은 데이터베이스와 상호작용합니다. Laravel은 원시 SQL, [[Laravel 쿼리 빌더|유창한 쿼리 빌더]], [[Laravel Eloquent|Eloquent ORM]]을 사용하여 지원되는 다양한 데이터베이스에서 데이터베이스와의 상호작용을 매우 간단하게 만듭니다 . 현재 Laravel은 5개의 데이터베이스에 대한 퍼스트파티 지원을 제공합니다:
378번째 줄: 378번째 줄:


==데이터베이스 검사==
==데이터베이스 검사==
<code>db:show</code>와 <code>db:table</code> Artisan 명령어를 사용하여 데이터베이스와 관련된 테이블에 대한 유용한 정보를 얻을 수 있습니다. 데이터베이스의 개요(크기, 유형, 열린 연결 수 및 테이블 요약)를 확인하려면 <code>db:show</code> 명령어를 사용할 수 있습니다:
<syntaxhighlight lang='bash'>
php artisan db:show
</syntaxhighlight>
명령어에 <code>--database</code> 옵션을 통해 검사할 데이터베이스 연결 이름을 제공하여 특정 데이터베이스 연결을 지정할 수 있습니다:
<syntaxhighlight lang='bash'>
php artisan db:show --database=pgsql
</syntaxhighlight>
명령어의 출력에 테이블 행 수 및 데이터베이스 뷰 세부 정보를 포함하려면 <code>--counts</code>와 <code>--views</code> 옵션을 제공할 수 있습니다. 대형 데이터베이스의 경우 행 수 및 뷰 세부 정보를 검색하는 데 시간이 걸릴 수 있습니다:
<syntaxhighlight lang='bash'>
php artisan db:show --counts --views
</syntaxhighlight>
또한 다음 <code>Schema</code> 메소드를 사용하여 데이터베이스를 검사할 수 있습니다:
<syntaxhighlight lang='php'>
use Illuminate\Support\Facades\Schema;
$tables = Schema::getTables();
$views = Schema::getViews();
$columns = Schema::getColumns('users');
$indexes = Schema::getIndexes('users');
$foreignKeys = Schema::getForeignKeys('users');
</syntaxhighlight>
기본 애플리케이션 연결이 아닌 데이터베이스 연결을 검사하려면 <code>connection</code> 메소드를 사용할 수 있습니다:
<syntaxhighlight lang='php'>
$columns = Schema::connection('sqlite')->getColumns('users');
</syntaxhighlight>
;테이블 개요
데이터베이스 내 개별 테이블에 대한 개요를 확인하려면 <code>db:table</code> Artisan 명령어를 실행할 수 있습니다. 이 명령어는 테이블의 컬럼, 유형, 속성, 키, 인덱스를 포함한 일반적인 개요를 제공합니다:
<syntaxhighlight lang='bash'>
php artisan db:table users
</syntaxhighlight>
==데이터베이스 모니터링==
==데이터베이스 모니터링==
<code>db:monitor</code> Artisan 명령어를 사용하면 Laravel이 지정된 수 이상의 열린 연결을 관리하고 있을 때 <code>Illuminate\Database\Events\DatabaseBusy</code> 이벤트를 디스패치하도록 지시할 수 있습니다.
시작하려면, <code>db:monitor</code> 명령어를 [[Laravel 스케줄링|매 분마다 실행]]하도록 예약해야 합니다. 이 명령어는 모니터링하려는 데이터베이스 연결 설정 이름과 이벤트를 디스패치하기 전에 허용할 수 있는 최대 열린 연결 수를 인수로 받습니다:
<syntaxhighlight lang='bash'>
php artisan db:monitor --databases=mysql,pgsql --max=100
</syntaxhighlight>
이 명령어를 예약하는 것만으로는 열린 연결 수에 대한 알림을 트리거하기에 충분하지 않습니다. 명령어가 임계값을 초과하는 열린 연결 수를 가진 데이터베이스를 발견하면, <code>DatabaseBusy</code> 이벤트가 디스패치됩니다. 이 이벤트를 수신하여 알림을 개발팀에게 보내기 위해 애플리케이션의 <code>AppServiceProvider</code> 내에서 이 이벤트를 들어야 합니다:
<syntaxhighlight lang='php'>
use App\Notifications\DatabaseApproachingMaxConnections;
use Illuminate\Database\Events\DatabaseBusy;
use Illuminate\Support\Facades\Event;
use Illuminate\Support\Facades\Notification;
/**
* 애플리케이션 서비스 부트스트랩.
*/
public function boot(): void
{
    Event::listen(function (DatabaseBusy $event) {
        Notification::route('mail', 'dev@example.com')
                ->notify(new DatabaseApproachingMaxConnections(
                    $event->connectionName,
                    $event->connections
                ));
    });
}
</syntaxhighlight>
이 코드 조각은 DatabaseBusy 이벤트가 발생할 때 알림을 설정하여 개발팀에게 데이터베이스 연결 수가 최대 허용치를 초과했음을 알립니다.

제타위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-동일조건변경허락 3.0 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는 제타위키:저작권 문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다. 저작권이 있는 내용을 허가 없이 저장하지 마세요!

취소 편집 도움말 (새 창에서 열림)