ホームページ  >  記事  >  バックエンド開発  >  PHPデータベース移行ツール「Phinx」の使い方を教えます

PHPデータベース移行ツール「Phinx」の使い方を教えます

WBOY
WBOY転載
2022-02-17 10:49:165856ブラウズ

この記事では、PHP のデータベース移行ツールである Phinx に関する関連知識を共有します。Phinx は、開発、テスト、オンライン データベース同期フィールド情報、データ情報、データの生成と同期に特に適しています。テスト データ。お待ちください。皆さんのお役に立てば幸いです。

PHPデータベース移行ツール「Phinx」の使い方を教えます

#ドキュメントのアドレス: https://tsy12321.gitbooks.io/phinx-doc/content

1. インストール

composer require nhzex/think-phinx

2.

php vendor/bin/phinx

を実行します。php Vendor/bin/phinx init を直接実行して、設定ファイルを生成します

もう 1 つの方法は、php ファイルを直接使用して構成ファイルを作成することです。

php ベンダー/bin/phinx init を直接実行して構成ファイルを生成します。

もう 1 つの方法は、php ファイルを直接使用することです。 php ファイルを使用して、設定ファイル File

3 を作成します。phinx.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"
        )
    )
);

4 を設定します。実行します。 php Vendor/bin/phinx status 接続状態を確認します

#5. php Vendor/bin/phinx create migrationを実行します

6. /db/migrations/20180310020523_migration.php

が作成されました。このファイルを編集し、データベース作成コンテンツを追加します。

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();
    }

7. デフォルトでは、自動インクリメントされる ID が主キーとして追加されます。

php ベンダー/bin/phinx 移行を実行します

8. データを初期化します

php Vendor/bin/phinx seed:create categorySeederを実行します

システムは自動的に作成された ./db/seeds/CategorySeeder.php を作成します

# 9.CategorySeeder.phpを変更します

#php Vendor/bin/phinx seed:run とすべての Seed を実行します

10. 実行したい場合 指定したシードを -s パラメータで指定する必要があります

php Vendor/bin/phinx seed:run -s categorySeeder

11. テーブル構造を更新する

テーブル構造を更新する必要がある場合は、移行を作成する必要がありますExecute php Vendor/bin/phinx create ChangeArtist

次に、更新する必要があります。内容は変更関数に書き込まれます。

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();
    }

最後に、php Vendor/bin/phinx maigrate

を実行します。以前に実行された merge は実行されず、更新された部分のみが実行されます。

12. ロールバック

php vendor/bin/phinx rollback
13. データ入力

php vendor/bin/phinx seed:create UserSeeder
php vendor/bin/phinx seed:run -e product
Generate files
<?php
use Phinx\Seed\AbstractSeed;
class UserSeeder extends AbstractSeed {
    /**
     * 插入数据
     */
    public function run() {
        $data = array(
          array(
              &#39;id&#39;    => 1,
          ),
          array(
              &#39;id&#39;    => 2,
          )
        );
        $posts = $this->table(&#39;users&#39;);
        $posts->insert($data)->save();
    }
}
phinx は、開発、テスト、オンライン データベース同期フィールド情報、データ情報、テスト データの生成と同期などに特に適しているため、チーム開発プロセスでの使用に特に適しています。特に新しいプロジェクトの場合、プロジェクトの開始時に独立したデプロイメントに phinx を使用することを主張している限り、データベース テーブル情報が変更されるたびに、チーム メンバーは git または svn を介してコードを同期し、実行を実行できます。前述のコマンドを使用してデータベース テーブル情報を同期することで、従来の開発中に異なる開発環境間でライブラリ テーブル情報を同期する煩わしさやエラーを回避できます。

phinx.phpに「default_migration_table」=>「phinxlog」という設定項目があり、変更内容がここに記録されますが、これは繰り返し実行されないための対策でもあるので、心配する必要はありませんコマンドの実行の喪失または繰り返しについて。

推奨学習: 「

PHP ビデオ チュートリアル

以上がPHPデータベース移行ツール「Phinx」の使い方を教えますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はLaravel技术社区公众号で複製されています。侵害がある場合は、admin@php.cn までご連絡ください。