Rumah >pembangunan bahagian belakang >tutorial php >Ajar anda cara menggunakan alat pemindahan pangkalan data PHP 'Phinx'

Ajar anda cara menggunakan alat pemindahan pangkalan data PHP 'Phinx'

WBOY
WBOYke hadapan
2022-02-17 10:49:165919semak imbas

Artikel ini berkongsi pengetahuan tentang Phinx, alat penghijrahan pangkalan data yang digunakan dalam pemprosesan PHP amat sesuai untuk pembangunan, ujian, penyegerakan pangkalan data dalam talian bagi maklumat medan, maklumat data, penjanaan dan penyegerakan data ujian. Tunggu, saya harap ia membantu semua orang.

Ajar anda cara menggunakan alat pemindahan pangkalan data PHP 'Phinx'

Alamat dokumen: https://tsy12321.gitbooks.io/phinx-doc/content

Pemasangan

composer require nhzex/think-phinx

2. Laksanakan

php vendor/bin/phinx

dan jalankan php vendor/bin/phinx init secara langsung untuk menjana fail konfigurasi

Kaedah lain ialah dengan terus menggunakan fail php untuk membuat fail konfigurasi

Jalankan php vendor/bin/phinx init terus untuk menjana fail konfigurasi

Kaedah lain ialah menggunakan fail php secara terus sebagai fail konfigurasi

3. Gunakan phinx.php untuk mengkonfigurasi

<?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. Laksanakan status vendor/bin/phinx php Semak status sambungan

5

6 Dibuat /db/migrations/20180310020523_migration.php kini dijanaEdit fail ini dan tambah kandungan penciptaan pangkalan data.

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 Secara lalai, id yang ditambah secara automatik akan ditambahkan sebagai kunci utama Laksanakan vendor php/bin/phinx migrate

8. Mulakan dataLaksanakan php vendor/bin/phinx seed:create CategorySeeder

Sistem mencipta secara automatik . /db/seeds/CategorySeeder.php

9 Ubah suai CategorySeeder.phpLaksanakan vendor php/bin/phinx seed:run dan semua. Seed

10 Jika anda ingin menjalankan Seed yang ditentukan, anda perlu menentukannya dengan parameter -s php vendor/bin. /phinx seed:run -s CategorySeeder

11 Kemas kini struktur jadualApabila anda perlu mengemas kini struktur jadual, anda perlu. create another migrate

Execute php vendor/bin/phinx create ChangeArtist

Kemudian tulis kandungan yang perlu dikemas kini kepada change function

Akhirnya laksanakan vendor php /bin/phinx migrate
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();
    }

Migrate yang dilaksanakan sebelum ini tidak akan dilaksanakan, hanya Bahagian yang dikemas kini akan dilaksanakan.

12. Rollback

php vendor/bin/phinx rollback

13 🎜>Jana failphinx amat sesuai untuk pembangunan, ujian, penyegerakan pangkalan data dalam talian bagi maklumat medan, maklumat data, penjanaan dan penyegerakan data ujian, dsb., jadi ia amat sesuai untuk proses pembangunan pasukan Gunakan, terutamanya untuk projek baharu, selagi anda berkeras untuk menggunakan phinx untuk penggunaan bebas pada permulaan projek, maka setiap kali maklumat jadual pangkalan data ditukar, ahli pasukan boleh menyegerakkan kod melalui git atau svn dan kemudian laksanakan perintah pelaksanaan yang disebutkan di atas Segerakkan maklumat jadual perpustakaan untuk mengelakkan kebosanan dan ralat menyegerakkan maklumat jadual perpustakaan dalam persekitaran pembangunan yang berbeza semasa pembangunan tradisional.

php vendor/bin/phinx seed:create UserSeeder
php vendor/bin/phinx seed:run -e product
Terdapat item konfigurasi "default_migration_table" => "phinxlog" dalam phinx.php Perubahan ini juga merupakan langkah untuk memastikan ia tidak dilaksanakan berulang kali, jadi anda tidak perlu risau tentang kehilangan atau mengulangi pelaksanaan arahan.

Pembelajaran yang disyorkan: "
<?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();
    }
}
Tutorial Video PHP

"

Atas ialah kandungan terperinci Ajar anda cara menggunakan alat pemindahan pangkalan data PHP 'Phinx'. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:Laravel技术社区公众号. Jika ada pelanggaran, sila hubungi admin@php.cn Padam