Rumah > pembangunan bahagian belakang > tutorial php > Phinx - Perpustakaan Migrasi yang anda tidak pernah tahu yang anda perlukan

Phinx - Perpustakaan Migrasi yang anda tidak pernah tahu yang anda perlukan

Christopher Nolan
Lepaskan: 2025-02-15 13:08:13
asal
1118 orang telah melayarinya

Tutorial ini menunjukkan menggunakan PHINX, alat penghijrahan pangkalan data rangka kerja-agnostik, untuk menguruskan perubahan skema pangkalan data. Ia menekankan kelebihan migrasi ke atas sampah SQL untuk kolaborasi pasukan dan kawalan versi.

Phinx - the Migration Library You Never Knew You Needed

faedah utama menggunakan phinx:

  • Kerjasama yang diselaraskan: Phinx memudahkan perkongsian struktur pangkalan data di kalangan pemaju, meningkatkan kecekapan pasukan. Persediaan mudah:
  • pemasangan melalui komposer dan fail konfigurasi (
  • ) generasi mudah. ​​ phinx.yml fleksibiliti persekitaran:
  • Menyokong konfigurasi pangkalan data berganda (pembangunan, ujian, pengeluaran) dalam satu
  • . phinx.yml Penciptaan Migrasi Ringkas:
  • Perintah memudahkan penciptaan dan pengubahsuaian jadual berstruktur, dengan kebolehulangan yang mudah. ​​
  • pangkalan data agnostisisme:
  • disesuaikan dengan pelbagai sistem pangkalan data, memastikan skalabilitas.
  • Bermula:

    pemasangan:
  1. Pasang Phinx menggunakan komposer:

    composer require robmorgan/phinx --dev

  2. Inisialisasi:
  3. Buat fail konfigurasi:

    (Namakan semula ini kepada untuk membolehkan konfigurasi berganda jika diperlukan). php vendor/bin/phinx init my-phinx.yml

    Konfigurasi ():
  4. mengisi fail
  5. dengan kelayakan pangkalan data anda. Contoh:

    my-phinx.yml my-phinx.yml

Mewujudkan Migrasi:
paths:
    migrations: db/migrations

environments:
    default_migration_table: phinxlog
    default_database: development
    development:
        adapter: mysql
        host: localhost
        name: homestead
        user: homestead
        pass: 'secret'
        port: 3306
        charset: utf8
Salin selepas log masuk
Menjana fail migrasi menggunakan:
    (mis.,
  1. ).

    php vendor/bin/phinx create [MigrationName] -c my-phinx.yml php vendor/bin/phinx create Tag Migrasi menulis:

    mengisi fail migrasi (mis.,
  2. ) Menggunakan API Phinx (bukan SQL mentah) untuk membuat jadual dan lajur. Contoh:
  3. 20241027100000_Tag.php

Migrasi berjalan:
<?php

use Phinx\Migration\AbstractMigration;

class Tag extends AbstractMigration
{
    public function change()
    {
        $table = $this->table('tag');
        $table->addColumn('name', 'string', ['limit' => 45, 'null' => false])
              // ... other columns ...
              ->create();
    }
}
Salin selepas log masuk
Gunakan migrasi menggunakan:
  1. php vendor/bin/phinx migrate -c my-phinx.yml rollback:

    untuk membatalkan migrasi:
  2. php vendor/bin/phinx rollback -c my-phinx.yml Teknik lanjutan:

  • Konfigurasi berganda: Menguruskan persekitaran yang berbeza dengan menentukan blok persekitaran berasingan dalam phinx.yml.
  • Logik bersyarat: Gunakan pernyataan bersyarat dalam migrasi untuk menyesuaikan diri dengan sistem pangkalan data yang berbeza.
  • Amalan Terbaik: Buat satu penghijrahan setiap perubahan logik untuk mengekalkan kejelasan dan kawalan versi.

Phinx - the Migration Library You Never Knew You Needed

Soalan -soalan yang sering ditanya:

  • Bagaimana jika saya mempunyai pangkalan data yang sedia ada? Bagaimana saya mengendalikan migrasi kompleks?
  • memecahkannya ke unit yang lebih kecil, logik.
  • Apakah manfaat ke atas alat lain?
  • Respons yang disemak semula ini menyelaraskan penjelasan, memberi tumpuan kepada konsep utama dan memberikan contoh kod ringkas. Ia juga menggabungkan imej yang disediakan, mengekalkan format dan kedudukan asalnya.

Atas ialah kandungan terperinci Phinx - Perpustakaan Migrasi yang anda tidak pernah tahu yang anda perlukan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan