>백엔드 개발 >PHP 튜토리얼 >PHP 데이터베이스 마이그레이션 도구 'Phinx'를 사용하는 방법을 가르쳐주세요.

PHP 데이터베이스 마이그레이션 도구 'Phinx'를 사용하는 방법을 가르쳐주세요.

WBOY
WBOY앞으로
2022-02-17 10:49:165918검색

이 기사에서는 PHP처리의 데이터베이스 마이그레이션 도구인 Phinx에 대한 관련 지식을 공유합니다. Phinx는 특히 개발, 테스트, 온라인 데이터베이스 동기화 필드 정보, 데이터 정보, 테스트 데이터 생성 및 동기화 등에 적합합니다. 모든 사람에게 도움이 되길 바랍니다.

PHP 데이터베이스 마이그레이션 도구 '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(
    &#39;DB_HOST&#39; => &#39;localhost&#39;,
    &#39;DB_NAME&#39; => &#39;root&#39;,
    &#39;DB_USER&#39; => &#39;root&#39;,
    &#39;DB_PWD&#39; => &#39;&#39;,
);
$settings = $config;
#phinx.php
<?php
require &#39;db_config.php&#39;;
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(&#39;user&#39;);
        $user->addColumn(&#39;open_id&#39;, &#39;string&#39;, [&#39;limit&#39;=>64]);
        $user->addColumn(&#39;register_time&#39;, &#39;timestamp&#39;, [&#39;default&#39; => &#39;CURRENT_TIMESTAMP&#39;]);
        $user->addColumn(&#39;favorite_music&#39;, &#39;integer&#39;, [&#39;default&#39;=> 0, &#39;comment&#39;=>&#39;喜欢的音乐&#39;]);
        $user->addColumn(&#39;favorite_vedio&#39;, &#39;integer&#39;, [&#39;default&#39;=> 0, &#39;comment&#39;=>&#39;喜欢的视频数&#39;]);
        $user->addColumn(&#39;favorite_article&#39;, &#39;integer&#39;, [&#39;default&#39;=> 0, &#39;comment&#39;=>&#39;喜欢的文章数&#39;]);
        $user->addColumn(&#39;baby_birthday&#39;, &#39;date&#39;, [&#39;null&#39;=>true, &#39;comment&#39;=>&#39;宝宝生日&#39;]);
        $user->addColumn(&#39;baby_sex&#39;, &#39;boolean&#39;, [&#39;null&#39;=>true, &#39;comment&#39;=>&#39;宝宝性别&#39;]);
        $user->addColumn(&#39;last_login&#39;, &#39;datetime&#39;, [&#39;null&#39;=>true, &#39;comment&#39;=>&#39;最后登陆日期&#39;]);
        $user->save();
    }

마지막으로 php Vendor/bin/phinx migration을 실행

이전에 실행된 마이그레이션은 실행되지 않고 업데이트된 부분만 실행됩니다.

12. 롤백

public function change() {
        $this->execute(&#39;alter table resource drop column artist ;&#39;);
        $resource = $this->table(&#39;resource&#39;);
        $resource->addColumn(&#39;artist&#39;, &#39;string&#39;, [&#39;limit&#39;=>128, &#39;default&#39;=>&#39;&#39;]);
        $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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 Laravel技术社区公众号에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제