이 기사에서는 PHP처리의 데이터베이스 마이그레이션 도구인 Phinx에 대한 관련 지식을 공유합니다. Phinx는 특히 개발, 테스트, 온라인 데이터베이스 동기화 필드 정보, 데이터 정보, 테스트 데이터 생성 및 동기화 등에 적합합니다. 모든 사람에게 도움이 되길 바랍니다.
문서 주소 : https://tsy12321.gitbooks.io/phinx-doc/content
1.
composer require nhzex/think-phinx
실행 2. PHP 공급업체/직접 bin/phinx init는 구성 파일을 생성할 수 있습니다또 다른 방법은 PHP 파일을 직접 사용하여 구성 파일을 만드는 것입니다
php Vendor/bin/phinx init를 직접 실행하여 구성 파일을 생성하는 것
또 다른 방법은 PHP 파일을 직접 사용하여 구성을 만드는 것입니다 파일
3. phinx.php를 사용하여
php vendor/bin/phinx
을 실행하여 연결 상태를 확인합니다.
5. 마이그레이션 생성
6. 생성된 /db/migrations/20180310020523_migration.php가 이제 생성됩니다
이 파일을 편집하고 데이터베이스 생성 콘텐츠를 추가하세요.<?php
$config = array(
'DB_HOST' => 'localhost',
'DB_NAME' => 'root',
'DB_USER' => 'root',
'DB_PWD' => '',
);
$settings = $config;
#phinx.php
<?php
require 'db_config.php';
return array(
"paths" => array(
"migrations" => "db/migrations",
"seeds" => "db/seeds"
),
"environments" => array(
"defaut_migration_table" => "phinxlog",
"default_database" => "lleg",
"default_environment" => "development"
"production" => array(
"adapter" => "mysql",
"host" => $settings["DB_HOST"],
"name" => $settings["DB_NAME"],
"user" => $settings["DB_USER"],
"pass" => $settings["DB_PWD"],
"port" => 3306,
"charset" => "utf8"
),
"development" => array(
"adapter" => "mysql",
"host" => $settings["DB_HOST"],
"name" => $settings["DB_NAME"],
"user" => $settings["DB_USER"],
"pass" => $settings["DB_PWD"],
"port" => 3306,
"charset" => "utf8"
)
)
);
7.
Execute php Vendor/bin/phinx migration8. 데이터 초기화
Execute php Vendor/bin/phinx Seeder:create CategorySeeder시스템이 자동으로 생성됩니다. /db/seeds/CategorySeeder.php
9. CategorySeeder.php
수정 php Vendor/bin/phinx seed:run을 실행하면 모든 Seed가 실행됩니다10. Seed를 지정하려면 -s 매개변수로 지정해야 합니다
php Vendor/bin/phinx Seed:run -s CategorySeeder11 테이블 구조를 업데이트하세요
테이블을 업데이트해야 할 때. 구조, 또 다른 마이그레이션을 생성해야 합니다php Vendor/bin/phinx를 실행하여 ChangeArtist를 생성하세요그런 다음 업데이트해야 할 내용을 변경 기능에 작성하세요
public function change() { $user = $this->table('user'); $user->addColumn('open_id', 'string', ['limit'=>64]); $user->addColumn('register_time', 'timestamp', ['default' => 'CURRENT_TIMESTAMP']); $user->addColumn('favorite_music', 'integer', ['default'=> 0, 'comment'=>'喜欢的音乐']); $user->addColumn('favorite_vedio', 'integer', ['default'=> 0, 'comment'=>'喜欢的视频数']); $user->addColumn('favorite_article', 'integer', ['default'=> 0, 'comment'=>'喜欢的文章数']); $user->addColumn('baby_birthday', 'date', ['null'=>true, 'comment'=>'宝宝生日']); $user->addColumn('baby_sex', 'boolean', ['null'=>true, 'comment'=>'宝宝性别']); $user->addColumn('last_login', 'datetime', ['null'=>true, 'comment'=>'最后登陆日期']); $user->save(); }
마지막으로 php Vendor/bin/phinx migration을 실행
이전에 실행된 마이그레이션은 실행되지 않고 업데이트된 부분만 실행됩니다.
12. 롤백
public function change() { $this->execute('alter table resource drop column artist ;'); $resource = $this->table('resource'); $resource->addColumn('artist', 'string', ['limit'=>128, 'default'=>'']); $resource->update(); }
13. 데이터 채우기
php vendor/bin/phinx rollback
파일 생성php vendor/bin/phinx seed:create UserSeeder
php vendor/bin/phinx seed:run -e product
phinx는 특히 개발, 테스트, 온라인 데이터베이스 동기화 필드 정보, 데이터 정보, 생성 및 동기화 테스트에 적합합니다. 데이터 등이 있으므로 팀 개발 프로세스, 특히 새 프로젝트에 사용하기에 특히 적합합니다. 프로젝트 시작 시 독립적 배포를 위해 phinx를 사용하는 한 데이터베이스 테이블을 변경할 때마다. 정보를 얻기 위해 팀원은 git 또는 svn을 사용할 수 있습니다. 메소드는 코드를 동기화한 다음 위에서 언급한 실행 명령을 실행하여 라이브러리 테이블 정보를 동기화함으로써 기존 개발 중 다양한 개발 환경에서 라이브러리 테이블 정보를 동기화하는 지루함과 오류를 방지합니다. phinx.php에는 구성 항목 "default_migration_table" => "phinxlog"가 있습니다. 변경 사항이 여기에 기록됩니다. 이는 반복적으로 실행되지 않도록 하기 위한 조치이므로 손실되거나 반복될 염려가 없습니다. 명령 실행.
추천 학습: "
PHP 비디오 튜토리얼"
위 내용은 PHP 데이터베이스 마이그레이션 도구 'Phinx'를 사용하는 방법을 가르쳐주세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!