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.
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: - Pasang Phinx menggunakan komposer:
composer require robmorgan/phinx --dev
Inisialisasi: - Buat fail konfigurasi:
(Namakan semula ini kepada untuk membolehkan konfigurasi berganda jika diperlukan).
php vendor/bin/phinx init
my-phinx.yml
Konfigurasi ():
mengisi fail - 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., - ).
php vendor/bin/phinx create [MigrationName] -c my-phinx.yml
php vendor/bin/phinx create Tag
Migrasi menulis:
mengisi fail migrasi (mis., ) Menggunakan API Phinx (bukan SQL mentah) untuk membuat jadual dan lajur. Contoh: -
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:
-
php vendor/bin/phinx migrate -c my-phinx.yml
rollback:
untuk membatalkan migrasi: -
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.
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!