Rumah  >  Artikel  >  rangka kerja php  >  Bagaimana untuk melaksanakan migrasi pangkalan data dalam ThinkPHP6?

Bagaimana untuk melaksanakan migrasi pangkalan data dalam ThinkPHP6?

WBOY
WBOYasal
2023-06-12 09:30:101635semak imbas

Memandangkan aplikasi terus berkembang dan keperluan berubah, kami selalunya perlu mengubah suai, berhijrah dan mengemas kini pangkalan data semasa proses pembangunan. Walau bagaimanapun, dalam proses mengemas kini pangkalan data, jika ia tidak dipertimbangkan dan diselenggara dengan teliti, beberapa siri masalah seperti konflik data dan kehilangan data mungkin berlaku. Untuk menyelesaikan masalah ini dengan berkesan, kami perlu menggunakan alat migrasi pangkalan data profesional untuk menyelesaikan operasi ini.

ThinkPHP6 ialah rangka kerja PHP yang popular untuk membina aplikasi web yang menyediakan banyak ciri dan alatan berguna, termasuk pemindahan pangkalan data. Artikel ini akan memperkenalkan cara menggunakan fungsi pemindahan pangkalan data dalam ThinkPHP6.

1. Apakah itu pemindahan pangkalan data?

Migrasi pangkalan data merujuk kepada proses mengemas kini dan mengubah suai struktur pangkalan data semasa pembangunan dan pengendalian aplikasi. Dalam erti kata lain, melalui migrasi pangkalan data, kita boleh menambah, memadam, dan menamakan semula jadual pangkalan data serta menambah, mengubah suai dan memadam medan.

Dalam ThinkPHP6, alat pemindahan pangkalan data dilaksanakan terutamanya melalui dua konsep: kelas migrasi dan kelas pengisian.

2. Bagaimana untuk menggunakan migrasi pangkalan data?

  1. Buat kelas migrasi

Untuk menggunakan migrasi pangkalan data dalam ThinkPHP6, anda perlu mencipta kelas migrasi terlebih dahulu. Kelas migrasi ialah kelas PHP yang mengandungi dua kaedah, kaedah naik dan kaedah turun. Kaedah

up digunakan untuk melaksanakan operasi pemindahan pangkalan data, seperti mencipta, mengubah suai, memadamkan jadual atau medan pangkalan data, dsb. Kaedah ke bawah digunakan untuk melancarkan operasi migrasi, iaitu, untuk membatalkan operasi yang dilakukan oleh kaedah naik.

Berikut ialah contoh kelas migrasi mudah untuk mencipta jadual pangkalan data bernama pengguna:

<?php

use thinkmigrationdbColumn;
use thinkmigrationMigrator;

class CreateUsersTable extends Migrator
{
    public function up()
    {
        $table = $this->table('users', ['engine' => 'InnoDB', 'id' => false, 'primary_key' => 'id']);
        $table->addColumn('id', 'integer', ['signed' => false, 'identity' => true])
            ->addColumn('name', 'string', ['limit' => 32])
            ->addColumn('email', 'string', ['limit' => 128])
            ->addColumn('password', 'string', ['limit' => 60])
            ->addColumn('created_at', 'datetime')
            ->addColumn('updated_at', 'datetime')
            ->create();
    }

    public function down()
    {
        $this->table('users')->drop();
    }
}

Dalam kelas migrasi di atas, kami mula-mula mencipta jadual pangkalan data bernama pengguna dalam kaedah atas Cipta pangkalan data jadual untuk pengguna dan tambah beberapa medan. Kemudian dalam kaedah bawah, kami memadamkan jadual.

  1. Lakukan pemindahan pangkalan data

Selepas mencipta kelas migrasi, kita perlu menggunakan perintah php think migrate untuk melaksanakan operasi migrasi. Jika tiada penghijrahan telah dilakukan, kita perlu menggunakan perintah php think migrate:install dahulu untuk memulakan jadual yang berkaitan untuk migrasi pangkalan data.

Seterusnya, kita boleh menggunakan perintah php think migrate:status untuk melihat semua status migrasi semasa. Pada ketika ini, kita dapat melihat bahawa kelas migrasi yang kita buat belum lagi dilaksanakan.

Kemudian, kita boleh menggunakan perintah php think migrate:run untuk melaksanakan operasi migrasi. Pada ketika ini, kita dapat melihat bahawa sistem akan melaksanakan kelas migrasi yang baru kita buat dan mengeluarkan beberapa maklumat penyahpepijatan.

Selepas pelaksanaan, kita boleh menggunakan perintah php think migrate:status sekali lagi untuk melihat semua status migrasi semasa. Pada ketika ini, kita sepatutnya dapat melihat bahawa kelas migrasi yang kita buat telah berjaya dilaksanakan dan jadual bernama pengguna telah dibuat dalam pangkalan data.

Jika kita perlu melancarkan semula migrasi yang baru kita buat, kita boleh menggunakan perintah php think migrate:rollback. Perintah ini akan melancarkan operasi migrasi terakhir yang dilakukan.

Selain itu, kami juga boleh menggunakan perintah php think migrate:reset untuk melancarkan semula semua operasi migrasi yang telah dilakukan.

3. Bagaimana cara menggunakan kelas pengisi?

Selain kelas migrasi, ThinkPHP6 juga menyediakan ciri yang dipanggil kelas pengisian. Kelas isian digunakan untuk menambah data ujian atau data lalai pada jadual pangkalan data yang sedia ada.

Sama seperti kelas migrasi, kelas pengisian juga merupakan kelas PHP yang mengandungi dua kaedah, iaitu kaedah atas dan kaedah turun.

Berikut ialah kelas pengisi contoh mudah untuk menambah beberapa data ujian pada jadual pangkalan data bernama pengguna:

<?php

use thinkmigrationSeed;

class AddTestUsers extends Seed
{
    public function run()
    {
        $data = [
            [
                'name' => '张三',
                'email' => 'zhangsan@test.com',
                'password' => password_hash('123456', PASSWORD_DEFAULT),
                'created_at' => date('Y-m-d H:i:s'),
                'updated_at' => date('Y-m-d H:i:s'),
            ],
            [
                'name' => '李四',
                'email' => 'lisi@test.com',
                'password' => password_hash('123456', PASSWORD_DEFAULT),
                'created_at' => date('Y-m-d H:i:s'),
                'updated_at' => date('Y-m-d H:i:s'),
            ],
            [
                'name' => '王五',
                'email' => 'wangwu@test.com',
                'password' => password_hash('123456', PASSWORD_DEFAULT),
                'created_at' => date('Y-m-d H:i:s'),
                'updated_at' => date('Y-m-d H:i:s'),
            ],
        ];

        $this->table('users')->insert($data)->save();
    }

    public function down()
    {
        $this->execute('TRUNCATE TABLE users;');
    }
}

Dalam kelas pengisi di atas, kami gunakan dalam kaedah atas Kaedah sisipan menambah tiga keping data ujian ke jadual pangkalan data. Kemudian dalam kaedah turun, kami menggunakan kaedah laksana untuk memadam ketiga-tiga data ujian ini.

Kaedah melaksanakan kelas pengisian adalah serupa dengan kaedah melaksanakan kelas migrasi Kita boleh menggunakan arahan php think seed:run untuk melaksanakan kaedah pengisian kelas. Jika anda perlu melancarkan semula tugas kelas pengisian, anda boleh menggunakan arahan php think seed:rollback.

4 Ringkasan

Artikel ini memperkenalkan kaedah penggunaan migrasi pangkalan data dan pengisian ThinkPHP6, dan menunjukkan melalui contoh kod cara membuat kelas migrasi dan mengisi kelas, dan cara melaksanakan dan migrasi balik. dan operasi pengisian. Jika anda sedang membangun dan menyelenggara aplikasi dan perlu mengubah suai dan mengemas kini pangkalan data, sila pastikan anda menggunakan alat migrasi pangkalan data profesional ini untuk memastikan keselamatan dan ketepatan data anda.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan migrasi pangkalan data dalam ThinkPHP6?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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