Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Kaedah PHP untuk melaksanakan kemas kini rolling kontena pangkalan data

Kaedah PHP untuk melaksanakan kemas kini rolling kontena pangkalan data

PHPz
PHPzasal
2023-05-18 09:51:101359semak imbas

Dengan perkembangan pesat teknologi pengkomputeran awan dan kontena, semakin banyak perusahaan dan pembangun memilih untuk menggunakan teknologi kontena untuk menggunakan dan mengurus aplikasi mereka. Sebagai salah satu komponen teras aplikasi, pangkalan data juga telah mula beransur-ansur memasuki era kontena. Kemas kini bergulir telah menjadi ciri penting apabila menggunakan pangkalan data menggunakan teknologi kontena. Sebagai bahasa pembangunan laman web yang digunakan secara meluas, PHP juga mempunyai banyak kaedah untuk menyelesaikan masalah kemas kini rolling kontena pangkalan data.

Artikel ini akan memperkenalkan cara menggunakan PHP untuk melaksanakan kemas kini rolling kontena pangkalan data, termasuk cara menggunakan Docker Compose untuk mengurus bekas pangkalan data, cara menggunakan rangka kerja Laravel untuk melaksanakan migrasi dan rollback pangkalan data, dan cara menggunakan pangkalan data fungsi sandaran dan Pulihkan.

1. Gunakan Docker Compose untuk mengurus bekas pangkalan data

Docker Compose ialah alat yang dilancarkan secara rasmi oleh Docker untuk mengurus berbilang bekas Docker Anda boleh mentakrifkan dan mengkonfigurasi berbilang bekas dengan menulis fail YAML tetapan berkaitannya. Sangat mudah untuk menggunakan Docker Compose untuk mengurus bekas pangkalan data Anda hanya perlu mentakrifkan maklumat yang berkaitan bagi bekas pangkalan data dalam fail YAML dan menentukan kebergantungan antara mereka dan anda boleh melaksanakan kemas kini bergulir dengan mudah.

Berikut ialah contoh fail Docker Compose yang mudah, yang mengandungi dua bekas MySQL, sepadan dengan pangkalan data persekitaran pengeluaran dan persekitaran ujian. Apabila mengemas kini, mula-mula kemas kini bekas pangkalan data persekitaran ujian, dan kemudian kemas kini bekas pangkalan data persekitaran pengeluaran selepas pengesahan.

version: '3'

services:
  db_test:
    image: mysql:8.0
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=123456
      - MYSQL_DATABASE=test_db
  
  db_prod:
    image: mysql:8.0
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=123456
      - MYSQL_DATABASE=prod_db
    depends_on:
      - db_test

2. Gunakan rangka kerja Laravel untuk melaksanakan penghijrahan dan pemulangan pangkalan data

Laravel ialah rangka kerja pembangunan web PHP yang popular dengan fungsi penghijrahan dan pemulangan pangkalan data terbina dalam, yang sangat sesuai untuk pengurusan Containerized kemas kini pangkalan data. Menggunakan rangka kerja Laravel untuk penghijrahan dan pemulangan pangkalan data, kami boleh melaksanakan kawalan versi pada pangkalan data dengan mudah dan boleh membuat sandaran dan memulihkan pangkalan data dengan mudah.

Berikut ialah contoh fail migrasi Laravel yang ringkas, yang mentakrifkan jadual data bernama "pengguna". Fail migrasi ini boleh digunakan pada pangkalan data menggunakan perintah "php artisan migrate" dan digulung semula ke versi sebelumnya menggunakan perintah "php artisan migrate:rollback".

use IlluminateDatabaseMigrationsMigration;
use IlluminateDatabaseSchemaBlueprint;
use IlluminateSupportFacadesSchema;

class CreateUsersTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('users', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->string('name');
            $table->string('email')->unique();
            $table->timestamp('email_verified_at')->nullable();
            $table->string('password');
            $table->rememberToken();
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('users');
    }
}

3. Gunakan fungsi sandaran dan pemulihan pangkalan data

Semasa mengemas kini pangkalan data, adalah sangat perlu untuk membuat sandaran pangkalan data. Pangkalan data boleh disandarkan dan dipulihkan dengan mudah menggunakan teknologi kontena. Skrip sandaran boleh ditakrifkan dalam Dockerfile untuk membuat sandaran pangkalan data secara automatik secara tetap. Apabila mengemas kini bekas pangkalan data, mula-mula sandarkan bekas pangkalan data asal, dan kemudian kemas kini dengan bekas pangkalan data baharu.

Berikut ialah contoh skrip sandaran mudah, yang menggunakan perintah mysqldump untuk menyandarkan pangkalan data ke fail backup.sql dalam direktori semasa.

#!/bin/bash

mysqldump -u root -p123456 --all-databases > backup.sql

Memulihkan sandaran pangkalan data juga mudah. Hanya letakkan fail sandaran ke dalam bekas dan gunakan arahan mysql untuk memulihkan sandaran ke pangkalan data. Skrip pemulihan boleh ditakrifkan dalam Dockerfile untuk memulihkan sandaran pangkalan data secara automatik secara tetap.

#!/bin/bash

mysql -u root -p123456 < /path/to/backup.sql

Ringkasan

Menggunakan PHP untuk melaksanakan kemas kini rolling kontena pangkalan data memerlukan pemahaman yang mendalam tentang pelbagai teknologi seperti Docker Compose, rangka kerja Laravel dan sandaran dan pemulihan pangkalan data. Dengan menggunakan teknologi ini, kami boleh melaksanakan fungsi kemas kini bergulir dengan sangat mudah dan memastikan kebolehpercayaan dan keselamatan kemas kini pangkalan data. Bagi perusahaan atau pembangun individu, kemas kini pangkalan data kontena telah menjadi teknologi penting dan akan menjadi semakin penting pada masa hadapan dengan pembangunan pengkomputeran awan dan kontena.

Atas ialah kandungan terperinci Kaedah PHP untuk melaksanakan kemas kini rolling kontena pangkalan data. 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