Migration 데이터베이스 마이그레이션 도구 Phinx
설명
Phinx는 개발자가 데이터베이스를 간단하게 수정하고 유지 관리할 수 있게 해줍니다. 이는 수동으로 SQL 문을 작성하는 것을 피하고, 강력한 PHP API를 사용하여 데이터베이스 마이그레이션을 관리합니다. 개발자는 버전 제어를 사용하여 데이터베이스 마이그레이션을 관리할 수 있습니다. Phinx는 서로 다른 데이터베이스 간의 데이터 마이그레이션을 쉽게 수행할 수 있게 해주며, 어떤 마이그레이션 스크립트가 실행되었는지를 추적할 수 있습니다. 개발자는 데이터베이스 상태에 대한 걱정 없이 더 나은 시스템을 작성하는 데 집중할 수 있습니다.
프로젝트 주소
https://github.com/cakephp/phinx
설치
composer require robmorgan/phinx
공식 한국어 문서 주소
자세한 사용은 공식 한국어 문서를 참조하십시오. 여기서는 webman에서 설정 및 사용 방법만 설명합니다.
https://tsy12321.gitbooks.io/phinx-doc/content/
마이그레이션 파일 디렉토리 구조
.
├── app 애플리케이션 디렉터리
│ ├── controller 컨트롤러 디렉터리
│ │ └── Index.php 컨트롤러
│ ├── model 모델 디렉터리
......
├── database 데이터베이스 파일
│ ├── migrations 마이그레이션 파일
│ │ └── 20180426073606_create_user_table.php
│ ├── seeds 테스트 데이터
│ │ └── UserSeeder.php
......
phinx.php 구성
프로젝트 루트 디렉터리에 phinx.php 파일을 생성합니다.
<?php
return [
"paths" => [
"migrations" => "database/migrations",
"seeds" => "database/seeds"
],
"environments" => [
"default_migration_table" => "phinxlog",
"default_database" => "dev",
"default_environment" => "dev",
"dev" => [
"adapter" => "DB_CONNECTION",
"host" => "DB_HOST",
"name" => "DB_DATABASE",
"user" => "DB_USERNAME",
"pass" => "DB_PASSWORD",
"port" => "DB_PORT",
"charset" => "utf8"
]
]
];
사용 제안
마이그레이션 파일은 코드가 합쳐진 후에는 수정할 수 없으며, 문제가 발생할 경우 새로운 수정 파일이나 삭제 작업 파일을 만들어 처리해야 합니다.
데이터베이스 테이블 생성 작업 파일 명명 규칙
{time(auto create)}_create_{테이블명 영어 소문자}
데이터베이스 테이블 수정 작업 파일 명명 규칙
{time(auto create)}_modify_{테이블명 영어 소문자+구체적인 수정 항목 영어 소문자}
데이터베이스 테이블 삭제 작업 파일 명명 규칙
{time(auto create)}_delete_{테이블명 영어 소문자+구체적인 수정 항목 영어 소문자}
데이터 채우기 파일 명명 규칙
{time(auto create)}_fill_{테이블명 영어 소문자+구체적인 수정 항목 영어 소문자}