찾다
PHP 프레임워크LaravelLaravel 프레임워크에서 데이터베이스 및 데이터베이스 마이그레이션에 대한 간단한 분석

Laravel Framework의 개발 방법은 민첩하고 반복적인 것이 특징이며 처음부터 올바른 코드를 모두 얻을 수 있을 것이라고는 기대하지 않습니다. 대신 우리는 코드를 작성하고, 테스트하고, 최종 사용자와 상호 작용하며 이해를 개선합니다.

업무를 위해서는 일련의 지원 관행이 필요합니다. 우리는 Subversion, GIT 또는 Mercurial과 같은 버전 제어 도구를 사용하여 애플리케이션의 소스 코드 파일을 저장하므로 개발 중에 오류를 실행 취소하고 변경 사항을 추적할 수 있습니다.

하지만 애플리케이션이 변경되면 버전 관리만으로는 효과적으로 관리할 수 없는 영역이 있습니다. 개발이 진행됨에 따라 Laravel 애플리케이션의 데이터베이스 스키마는 계속 발전했습니다. 여기에 테이블을 추가하고, 열 이름을 바꾸고, 인덱스를 삭제하는 등의 작업을 수행했습니다. 데이터베이스 변경은 애플리케이션 코드와 동시에 이루어집니다.

데이터베이스 스키마 변경 사항을 추적하려면 정교한 방법이 필요하며 일반적으로 여러 가지 방법이 있습니다. 작업하는 동안 모든 사람이 아키텍처 변경 사항에 대해 알아야 합니다.

  • 프로덕션 서버에 배포하는 경우 데이터베이스 스키마를 업그레이드할 수 있는 강력한 방법이 필요합니다.

  • 여러 컴퓨터에서 작업하는 경우 모든 데이터베이스 스키마를 동기화된 상태로 유지해야 합니다.

  • 데이터베이스 스키마를 애플리케이션 코드와 동기화하는 것은 역사적으로 애플리케이션 개발자가 따라야 할 엄격한 규칙과 규율이 없으면 매우 번거로운 작업이었습니다. 개발자(또는 데이터베이스 관리자)가 필요한 스키마 변경을 수행합니다. 그러나 애플리케이션 코드가 이전 버전으로 롤백되면 데이터베이스 스키마 변경 사항을 취소하기 어려워 데이터베이스 버전 정보와 애플리케이션 코드 버전 정보가 일치하지 않게 됩니다.

  • 마이그레이션은 변경할 때마다 데이터베이스를 삭제하거나 재구축할 필요 없이 애플리케이션의 데이터 아키텍처를 발전시키는 데 도움이 되는 Laravel의 방법입니다. 삭제 및 재구축이 없다는 것은 변경할 때마다 데이터가 손실되지 않는다는 것을 의미합니다. 마이그레이션을 수행할 때 유일한 변경 사항은 앞으로 또는 뒤로 이동하든 데이터베이스 스키마를 한 버전에서 다른 버전으로 이동하는 것입니다.

Laravel 마이그레이션은 반복적인 방식으로 데이터베이스 스키마를 수정할 수 있는 수단을 제공합니다. 이를 통해 SQL 작업을 사용할 필요는 없지만 PHP 코드를 사용할 수 있습니다. Laravel 스키마 생성기를 사용하면 데이터베이스 테이블을 빠르게 생성하고 열이나 인덱스를 삽입할 수 있습니다. 깨끗하고 표현력이 풍부한 구문을 사용하여 데이터베이스를 조작합니다. Laravel 마이그레이션이 데이터베이스의 버전 제어라고 생각할 수도 있습니다.

데이터베이스 스키마를 생성하고 유지 관리하기 위한 상위 수준 인터페이스를 정의하면 이를 데이터베이스 독립적인 방식으로 정의할 수 있습니다. PHP를 사용하여 테이블을 생성하고, 열과 인덱스를 정의하고, 스키마를 한 번 작성하고 이를 지원되는 모든 데이터베이스 백엔드에 적용합니다. 추가 이점으로 Laravel은 어떤 마이그레이션이 적용되었는지, 어떤 마이그레이션이 여전히 적용되어야 하는지 추적합니다.

마이그레이션 기본

Laravel 마이그레이션은 애플리케이션의 app/database/migrations 디렉터리에 있는 PHP 소스 파일일 뿐입니다. 각 파일에는 기본 데이터베이스에 대한 변경 사항 집합이 포함되어 있습니다. 데이터베이스에 대한 변경은 데이터베이스별 SQL이 아닌 PHP 코드로 이루어집니다. 귀하의 PHP 마이그레이션 코드는 궁극적으로 현재 데이터베이스와 일치하는 DDL로 변환되므로 데이터베이스 플랫폼 전환이 매우 쉽습니다. 마이그레이션 코드는 자체 디렉터리에 저장되므로 다른 프로젝트 코드와 마찬가지로 버전 관리에 포함되어야 합니다. Laravel 마이그레이션은 Artisan 도구를 사용하여 명령줄에서 명시적으로 실행됩니다.

마이그레이션 파일 명명 규칙

이전 버전의 Laravel에서는 마이그레이션된 파일의 이름이 001_create_employees_table.php와 같이 더 간단합니다. Laravel 3(Laravel 4.1 및 동급)에서는 이름의 첫 번째 부분이 2014_03_11_032903_create_employees_table.php와 같이 일련 번호에서 더 긴 이름으로 변경되는 새로운 명명 규칙을 도입했습니다. 파일 이름은 YYYY_MM_DD_HHMMSS_some_meaningful_name.php 형식으로, 식별된 UTC 타임스탬프와 마이그레이션 이름을 의미합니다.

새로운 더 넓은 이름은 이름 충돌을 방지하는 데 도움이 되며, 팀에서 작업하는 개발자인 경우 자신의 마이그레이션을 확인할 수 있습니다.

또한, Laravel은 파일이 순차적으로 실행될 수 있도록 파일의 타임스탬프를 마이그레이션합니다. 타임스탬프 번호는 개별 마이그레이션 버전 번호가 적용되는 순서대로 어떤 마이그레이션이 적용되는지 정의하므로 마이그레이션의 핵심입니다.

SQL 스크립트와 마찬가지로 마이그레이션은 위에서부터 실행되므로 이러한 파일을 실행해야 합니다. 순차적 실행은 테이블이 존재하지 않을 때 열을 삽입하려고 시도할 가능성을 제거합니다.

마이그레이션 파일을 수동으로 생성할 수도 있지만 Artisan 도구를 사용하여 마이그레이션 스크립트를 생성하는 것이 더 쉽고 오류 발생 가능성도 낮습니다. 필요한 경우 나중에 이러한 파일을 편집할 수 있습니다.

앞으로 및 뒤로 마이그레이션 실행

Artisan 도구를 사용하여 데이터베이스로 마이그레이션합니다. Laravel은 특정 마이그레이션 세트를 실행하는 데 필요한 일련의 장인 작업을 제공합니다.

[

참고]

장인 목록을 실행할 수 있습니다장인을 보려면#🎜🎜 # 지원되는 작업 목록, 대부분의 데이터 마이그레이션 관련 작업에는 마이그레이션이라는 접두사가 붙습니다: .

알아야 할 몇 가지 일반적인 작업:

  • migration:install
    처음으로 사용할 수 있는 마이그레이션 관련 숙련된 작업 시간 그냥 마이그레이션:설치하세요. 내부적으로 Laravel은 어떤 마이그레이션이 실행되었는지 추적하기 위해 특수 테이블을 사용합니다. 이 테이블을 생성하려면 artisan 명령줄 도구를 사용하세요:
    $php artisan migration:install

  • migration
    마이그레이션 작업을 자주 실행하게 됩니다. 애플리케이션에 추가하는 최신 테이블과 열을 지원하도록 데이터베이스를 업데이트하세요. 가장 기본적인 형태에서는 아직 실행되지 않은 모든 마이그레이션에 대해서만 up() 메서드를 실행합니다. 해당 마이그레이션이 없으면 종료됩니다. 마이그레이션된 날짜를 기준으로 이러한 마이그레이션을 실행합니다.

  • migration:rollback
    가끔 마이그레이션을 작성할 때 실수가 발생합니다. 이미 마이그레이션을 실행했다면 마이그레이션을 편집하고 다시 실행할 수는 없습니다. Laravel은 이미 마이그레이션을 실행했다고 가정하므로 artisan을 다시 실행하면 됩니다. 마이그레이션, 아무것도하지 않습니다. 장인을 이용해야지 migration:rollback은 마이그레이션을 롤백한 다음 마이그레이션을 편집하고 artisan을 실행합니다. 올바른 버전을 실행하려면 마이그레이션하세요.

일반적으로 기존 마이그레이션을 편집하는 것은 좋은 생각이 아닙니다. 귀하와 동료에게 추가 작업이 필요하며 골치 아픈 일이 될 것입니다. 기존 버전의 마이그레이션이 프로덕션 시스템에서 이미 실행 중입니다. 대신 필요한 변경을 수행하려면 새 마이그레이션을 작성해야 합니다.

[참고]artisan migration:rollback은 마지막 마이그레이션 애플리케이션을 삭제합니다. Laravel은 전체 마이그레이션 "작업"으로 돌아갑니다. 따라서 마지막 마이그레이션 명령이 15개의 마이그레이션을 실행한 경우 15개의 마이그레이션이 모두 롤백됩니다. 열이나 테이블을 삭제하면 데이터가 손실된다는 점에 유의하세요.

migration:reset
모든 마이그레이션 롤백(모든 테이블과 데이터가 삭제됨)

migration:refresh
artisan migration:refresh 작업이 삭제됩니다. 데이터베이스를 다시 만들고 현재 스키마를 로드합니다. 이는 재설정을 실행한 후 모든 마이그레이션을 다시 실행하는 편리한 바로가기입니다.

migration:make
artisan migration:make 명령은 다음을 알려줍니다. 마이그레이션 파일 뼈대를 생성하는 Laravel(실제로는 PHP 파일)을 app/database/migrations 폴더에 저장합니다. 그런 다음 이 파일을 편집하여 테이블/인덱스 정의를 구체화할 수 있습니다. 그럼 장인님 마이그레이션 명령이 실행되면 artisan은 이 파일을 쿼리하여 생성합니다. SQL DDL의 실제 코드입니다.

관련 권장사항:

freetds(코드)를 통해 laravel5를 sqlserver에 연결하는 방법

위 내용은 Laravel 프레임워크에서 데이터베이스 및 데이터베이스 마이그레이션에 대한 간단한 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
Laravel의 다양성 : 간단한 사이트에서 복잡한 시스템에 이르기까지Laravel의 다양성 : 간단한 사이트에서 복잡한 시스템에 이르기까지Apr 13, 2025 am 12:13 AM

Laravel Development Project는 다양한 크기와 복잡성의 요구에 맞게 유연성과 힘으로 인해 선정되었습니다. Laravel은 간단한 블로그에서 복잡한 엔터프라이즈 수준 시스템에 이르기까지 라우팅 시스템, Eloquentorm, Artisan Command Line 및 기타 기능을 제공합니다.

Laravel (PHP) vs. Python : 개발 환경 및 생태계Laravel (PHP) vs. Python : 개발 환경 및 생태계Apr 12, 2025 am 12:10 AM

개발 환경과 생태계에서 Laravel과 Python의 비교는 다음과 같습니다. 1. Laravel의 개발 환경은 간단하며 PHP와 작곡가 만 필요합니다. Laravelforge와 같은 풍부한 확장 패키지를 제공하지만 확장 패키지 유지 보수는시기 적절하지 않을 수 있습니다. 2. 파이썬의 개발 환경도 간단하며 파이썬과 PIP 만 필요합니다. 생태계는 거대하고 여러 분야를 다루지 만 버전 및 종속성 관리는 복잡 할 수 있습니다.

Laravel 및 백엔드 : 파워링 웹 응용 프로그램 논리Laravel 및 백엔드 : 파워링 웹 응용 프로그램 논리Apr 11, 2025 am 11:29 AM

Laravel은 백엔드 논리에서 어떻게 중요한 역할을합니까? 라우팅 시스템, eloquentorm, 인증 및 승인, 이벤트 및 청취자, 성능 최적화를 통해 백엔드 개발을 단순화하고 향상시킵니다. 1. 라우팅 시스템은 URL 구조의 정의 및 요청 처리 로직을 정의 할 수 있습니다. 2. eloquentorm은 데이터베이스 상호 작용을 단순화합니다. 3. 인증 및 인증 시스템은 사용자 관리에 편리합니다. 4. 이벤트와 리스너는 느슨하게 결합 된 코드 구조를 구현합니다. 5. 성능 최적화는 캐싱 및 대기열을 통한 응용 프로그램 효율성을 향상시킵니다.

Laravel이 왜 그렇게 인기가 있습니까?Laravel이 왜 그렇게 인기가 있습니까?Apr 02, 2025 pm 02:16 PM

Laravel의 인기에는 단순화 된 개발 프로세스, 쾌적한 개발 환경 및 풍부한 기능이 포함됩니다. 1) PHP의 유연성을 결합하여 Rubyonrails의 설계 철학을 흡수합니다. 2) 개발 효율성을 향상시키기 위해 Eloquentorm, Blade Template Engine 등과 같은 도구를 제공하십시오. 3) MVC 아키텍처 및 종속성 주입 메커니즘은 코드를보다 모듈화적이고 테스트 가능하게 만듭니다. 4) 캐싱 시스템 및 모범 사례와 같은 강력한 디버깅 도구 및 성능 최적화 방법을 제공합니다.

어느 것이 더 낫습니까, 장고 또는 라벨?어느 것이 더 낫습니까, 장고 또는 라벨?Mar 28, 2025 am 10:41 AM

Django와 Laravel은 모두 풀 스택 프레임 워크입니다. Django는 Python 개발자 및 복잡한 비즈니스 논리에 적합한 반면 Laravel은 PHP 개발자 및 우아한 구문에 적합합니다. 1. Django는 파이썬을 기반으로하며 빠른 개발 및 높은 동시성에 적합한 "배터리 완성"철학을 따릅니다. 2. Laravel은 PHP를 기반으로하며 개발자 경험을 강조하며 중소형 프로젝트에 적합합니다.

더 나은 PHP 또는 Laravel은 무엇입니까?더 나은 PHP 또는 Laravel은 무엇입니까?Mar 27, 2025 pm 05:31 PM

Laravel은 PHP 기반 프레임 워크이기 때문에 PHP와 Laravel은 직접 비교할 수 없습니다. 1.PHP는 소규모 프로젝트 또는 빠른 프로토 타이핑에 적합하고 간단하고 직접적이기 때문에 적합합니다. 2. Laravel은 대규모 프로젝트 또는 효율적인 개발에 적합하지만 풍부한 기능과 도구를 제공하지만 가파른 학습 곡선을 가지고 있으며 순수한 PHP만큼 좋지 않을 수 있습니다.

Laravel은 프론트 엔드 또는 백엔드입니까?Laravel은 프론트 엔드 또는 백엔드입니까?Mar 27, 2025 pm 05:31 PM

laravelisabackendframeworkbuiltonphp, 디자인 된 forwebapplicationdevelopment.itfocusesonserver-sidelogic, databasemanagement, andapplicationtructure, and canbeintegratedwithfrontendechnologies likevue.jsorreactforfull-stackdevelopment.

Laravel에서 Custom Blade Directives를 어떻게 작성하고 사용합니까?Laravel에서 Custom Blade Directives를 어떻게 작성하고 사용합니까?Mar 17, 2025 pm 02:50 PM

이 기사는 Laravel에서 사용자 정의 블레이드 지시문을 만들고 사용하여 템플릿을 향상시키는 것에 대해 설명합니다. 지침 정의, 템플릿에서이를 사용하고 대규모 프로젝트에서 관리하고 개선 된 코드 재사용 성 및 R과 같은 이점을 강조합니다.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

WebStorm Mac 버전

WebStorm Mac 버전

유용한 JavaScript 개발 도구

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

DVWA

DVWA

DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구