Bagaimana untuk menggunakan Phinx dengan CakePHP?

PHPz
Lepaskan: 2023-06-04 08:12:01
asal
716 orang telah melayarinya

CakePHP ialah rangka kerja PHP MVC popular yang menyediakan pelbagai alatan dan ciri untuk membantu pembangun mencipta aplikasi web yang cekap. Phinx ialah perpustakaan migrasi pangkalan data yang fleksibel yang membantu pembangun mengurus perubahan pangkalan data dengan mudah. Artikel ini akan memperkenalkan cara menggunakan Phinx dengan CakePHP.

  1. Pasang Phinx

Pasang Phinx menggunakan Komposer:

composer require robmorgan/phinx
Salin selepas log masuk

Setelah pemasangan selesai, anda akan mempunyai Phinx dalam direktori vendor/bin aplikasi anda Boleh Laksana fail.

  1. Mengkonfigurasi Phinx

Buat fail baharu phinx.php dalam direktori app/config dan tambah kandungan berikut.

use CakeCoreConfigure;

return [
   'paths' => [
       'migrations' => [
           __DIR__ . '/../config/Migrations',
       ],
       'seeds' => [
           __DIR__ . '/../config/Seeds',
       ],
   ],
   'environments' => [
       'default_migration_table' => 'phinxlog',
       'default_database' => 'default',
       'default' => [
           'adapter' => 'mysql',
           'host' => '127.0.0.1',
           'name' => 'mydatabase',
           'user' => 'myuser',
           'pass' => 'mypassword',
           'port' => '3306',
           'charset' => 'utf8'
       ],
   ]
];
Salin selepas log masuk

Fail konfigurasi ini mengarahkan Phinx untuk mencari migrasi dan fail benih dalam direktori config/Migrations dan config/Seeds aplikasi dan menggunakan MySQL untuk menyambung ke pangkalan data bernama mydatabase.

  1. Buat migrasi

Buat fail migrasi baharu dalam direktori config/Migrations, contohnya CreateUsersTable.php. Fail migrasi harus mentakrifkan kaedah up dan down untuk melaksanakan atau membuat asal migrasi pada pangkalan data.

Contoh:

use PhinxMigrationAbstractMigration;

class CreateUsersTable extends AbstractMigration
{
   public function change()
   {
       $table = $this->table('users');
       $table->addColumn('username', 'string', ['limit' => 20])
             ->addColumn('password', 'string', ['limit' => 100])
             ->addColumn('email', 'string', ['limit' => 50])
             ->addColumn('created', 'datetime')
             ->addColumn('updated', 'datetime')
             ->create();
   }
}
Salin selepas log masuk

Fail migrasi ini akan mencipta jadual users baharu dalam pangkalan data dan menambah username, password, email, created dan updated Lajur.

  1. Jalankan migrasi

Jalankan migrasi menggunakan arahan berikut:

vendor/bin/phinx migrate
Salin selepas log masuk

Arahan ini akan menjalankan semua fail migrasi yang berada dalam status belum selesai (tidak digunakan) .

Anda boleh melancarkan semula penghijrahan ke keadaan sebelumnya menggunakan:

vendor/bin/phinx rollback
Salin selepas log masuk

Jika anda mahu kembali ke keadaan sebelum penghijrahan tertentu, gunakan arahan berikut:

vendor/bin/phinx rollback -t {timestamp}
Salin selepas log masuk

Di mana {timestamp} adalah cap masa penghijrahan untuk digulung semula.

  1. Cipta benih

Buat fail benih baharu dalam direktori config/Seeds, contohnya UsersSeeders.php. Fail benih harus menentukan kaedah run yang akan mengisi jadual yang sepadan dengan kriteria tertentu.

Contoh:

use PhinxSeedAbstractSeed;

class UsersSeeder extends AbstractSeed
{
   public function run()
   {
       $data = [
           [
               'username' => 'admin',
               'password' => password_hash('123456', PASSWORD_DEFAULT),
               'email' => 'admin@example.com',
               'created' => date('Y-m-d H:i:s'),
               'updated' => date('Y-m-d H:i:s')
           ],
           [
               'username' => 'user1',
               'password' => password_hash('password', PASSWORD_DEFAULT),
               'email' => 'user1@example.com',
               'created' => date('Y-m-d H:i:s'),
               'updated' => date('Y-m-d H:i:s')
           ]
       ];

       $table = $this->table('users');
       $table->insert($data)->save();
   }
}
Salin selepas log masuk

Torrent ini akan memasukkan dua pengguna awal ke dalam jadual users.

  1. Jalankan torrents

Jalankan semua fail torrent menggunakan arahan berikut:

vendor/bin/phinx seed:run
Salin selepas log masuk

Arahan ini akan menjalankan semua torrent yang berada dalam status belum selesai (tidak digunakan ) dokumen.

Anda boleh menjalankan torrent tertentu menggunakan arahan berikut:

vendor/bin/phinx seed:run -s {seederName}
Salin selepas log masuk

di mana {seederName} ialah nama torrent yang anda mahu jalankan.

Sekarang anda tahu cara menggunakan Phinx dengan CakePHP, mula cuba menggunakannya untuk mengurus perubahan pangkalan data anda!

Atas ialah kandungan terperinci Bagaimana untuk menggunakan Phinx dengan CakePHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
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