데이터베이스 마이그레이션은 개발자가 일관되고 구조화 된 방식으로 데이터베이스 스키마의 변경 사항을 제어하고 관리 할 수 있도록 애플리케이션 개발의 필수 부분입니다. PHP에서는 데이터베이스 마이그레이션 관리를 수동으로 수행 할 수 있지만 프로세스를 자동화하는 마이그레이션 도구를 사용하는 것이 더 효율적이고 오류가 적습니다. 마이그레이션 도구는 데이터베이스를 응용 프로그램의 코드와 동기화하여 스키마 변경을 처리하는 체계적인 방법을 제공합니다.
이 기사에서는 인기있는 라이브러리, 모범 사례 및 실제 사례 사용을 포함하여 PHP에서 데이터베이스 마이그레이션을 관리하는 방법을 살펴 봅니다.
데이터베이스 마이그레이션은 데이터베이스 스키마의 변경 사항 (예 : 테이블 및 열 및 열을 작성, 업데이트 또는 삭제)을 버전화하고 해당 변경 사항을 제어 방식으로 적용하는 방법입니다. 이주는 팀이 다음을 허용합니다 :
PHP에서 데이터베이스 마이그레이션을 처리하는 몇 가지 방법이 있지만 가장 일반적인 접근 방식은 마이그레이션 라이브러리를 사용하는 것입니다. Phinx 및 와 같은 인기있는 PHP 라이브러리를 사용하여 수행하는 방법은 다음과 같습니다.
1 단계 : Composer
작곡가에게는 Robmorgan/Phinx가 필요합니다
composer require robmorgan/phinx2 단계 : 구성 파일
php
반품 [
'Paths'=> [
'마이그레이션'=> 'db/마이그레이션',
'씨앗'=> 'db/seeds'
],,
'환경'=> [
'기본값'=> '개발',
'개발'=> [
'어댑터'=> 'mysql',
'호스트'=> 'localhost',
'name'=> 'your_database_name',
'사용자'=> '루트',
'Pass'=> '',
'charset'=> 'utf8',
],,
'생산'=> [
'어댑터'=> 'mysql',
'호스트'=> 'production_host',
'name'=> 'your_production_database',
'사용자'=> 'prod_user',
'pass'=> 'prod_password',
'charset'=> 'utf8',
]]
]]
];
[ 'migrations' => 'db/migrations', 'seeds' => 'db/seeds' ], 'environments' => [ 'default' => 'development', 'development' => [ 'adapter' => 'mysql', 'host' => 'localhost', 'name' => 'your_database_name', 'user' => 'root', 'pass' => '', 'charset' => 'utf8', ], 'production' => [ 'adapter' => 'mysql', 'host' => 'production_host', 'name' => 'your_production_database', 'user' => 'prod_user', 'pass' => 'prod_password', 'charset' => 'utf8', ] ] ];
3 단계 : 마이그레이션 만들기
PHP 공급 업체/bin/phinx 생성 제작자
php vendor/bin/phinx create CreateUsersTable
php
Phinx \ Migration \ Abstract -Migration을 사용하십시오.
클래스 CreateUserserstable은 Abstract -Migration을 확장합니다
{
공개 기능 변경 ()
{
$ table = $ this-> 테이블 ( '사용자');
$ table-> addcolumn ( 'name', 'string')
-> addColumn ( '이메일', '문자열')
-> create ();
}
}
table('users'); $table->addColumn('name', 'string') ->addColumn('email', 'string') ->create(); } }두 개의 열이있는 사용자 테이블을 만듭니다.
4 단계 : 마이그레이션 실행
PHP 공급 업체/빈/핀스 마이그레이션
php vendor/bin/phinx migrate
PHP 공급 업체/빈/Phinx Migrate -e 생산
composer require robmorgan/phinx5 단계 : 롤백 마이그레이션
PHP 공급 업체/빈/핀스 롤백
php vendor/bin/phinx rollback
PHP 공급 업체/빈/핀스 롤백 -T 20210101000000
php vendor/bin/phinx rollback -t 20210101000000
1 단계 : 교리 마이그레이션 설치
composer require robmorgan/phinx2 단계 : 교리 마이그레이션 구성
예 MIGRATIONS.PHP 구성 :
php
교리 \ dbal \ drivermanager를 사용하십시오.
교리 \ 마이그레이션 \ configuration \ configuration을 사용하십시오.
교리 \ Migrations \ Tools \ Console \ Command를 사용하십시오.
교리 \ 마이그레이션 \ 도구 \ console \ consolerunner를 사용하십시오.
// 데이터베이스 연결을 설정합니다
$ conn = driverManager :: getConnection ([[
'url'=> 'mysql : // root :@localhost/your_database_name',
]);
// 마이그레이션 구성을 설정합니다
$ config = 새 구성 ($ conn);
$ config-> setMigrationsNamesPace ( 'app \ migrations');
$ config-> setMigrationsDirectory ( 'DB/Migrations');
// 마이그레이션 도구를 만듭니다
$ console = consolerunner :: createApplication ($ config);
$ console-> run ();
composer require robmorgan/phinx3 단계 : 마이그레이션 만들기
PHP 공급 업체/빈/교리 마이그레이션 생성
php vendor/bin/doctrine-migrations generate
4 단계 : 마이그레이션 실행
PHP 공급 업체/빈/교리 마이그레이션 마이그레이션
php vendor/bin/doctrine-migrations migrate
5 단계 : 롤백 마이그레이션
PHP 공급 업체/빈/교리 마이그레이션 실행 -Down
php vendor/bin/doctrine-migrations execute --down
또는 Doctrine Migrations 와 같은 마이그레이션 도구를 사용하면 데이터베이스 스키마 변경을 관리하는 구조화되고 자동화 된 방법을 제공합니다. 이 도구는 수동 오류를 피하고 환경 간 일관성을 유지하며 데이터베이스 스키마가 제어되고 버전으로 진화하는지 확인합니다. 이러한 도구를 사용하면 응용 프로그램의 논리 구축에 집중하면서 데이터베이스가 항상 코드의 변경 사항과 동기화되도록합니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3