เครื่องมือการซัพเปอร์การย้ายฐานข้อมูล Phinx

คำอธิบาย

Phinx ช่วยให้นักพัฒนาสามารถปรับแก้และบำรุงรักษาฐานข้อมูลได้อย่างง่ายดาย มันช่วยให้อยู่ระงับไปกับการเขียนคำสั่ง SQL ด้วยการใช้ PHP API ที่มีพลัง ในการจัดการการย้ายฐานข้อมูล นักพัฒนาสามารถใช้การควบคุมเวอร์ชันในการบริหารจัดการการย้ายฐานข้อมูลของพวกเขา Phinx ยังช่วยให้สามารถย้ายข้อมูลระหว่างฐานข้อมูลที่แตกต่างได้อย่างสะดวก และยังสามารถติดตามสคริปต์การย้ายที่ได้รับการดำเนินการ นักพัฒนาสามารถไม่ต้องกังวลเกี่ยวกับสถานะของฐานข้อมูลและสามารถให้ความสนใจกับการเขียนระบบที่ดีขึ้นได้อย่างมากขึ้น

ที่อยู่โปรเจกต์

https://github.com/cakephp/phinx

การติดตั้ง

composer require robmorgan/phinx

ที่ตั้งเอกสารภาษาไทยอย่างเป็นทางการ

สามารถดูการใช้งานอย่างละเอียดได้ที่เอกสารภาษาไทยอย่างเป็นทางการ ที่นี่จะอธิบายเพียงแค่ว่าจะทำการตั้งค่าการใช้งานใน webman อย่างไร

https://tsy12321.gitbooks.io/phinx-doc/content/

โครงสร้างไฟล์การย้าย

.
├── app                           ไดเร็กทอรีแอปพลิเคชัน
│   ├── controller                ไดเร็กทอรีคอนโทลเลอร์
│   │   └── Index.php             คอนโทลเลอร์
│   ├── model                     ไดเร็กทอรีโมเดล
......
├── database                      ไดเร็กทอรีฐานข้อมูล
│   ├── migrations                ไดเร็กทอรีการย้าย
│   │   └── 20180426073606_create_user_table.php
│   ├── seeds                     ข้อมูลทดสอบ
│   │   └── UserSeeder.php
......

การกำหนดค่า phinx.php

สร้างไฟล์ phinx.php ในไดเร็กทอรีหลักของโปรเจกต์

<?php
return [
    "paths" => [
        "migrations" => "database/migrations",
        "seeds"      => "database/seeds"
    ],
    "environments" => [
        "default_migration_table" => "phinxlog",
        "default_database"        => "dev",
        "default_environment"     => "dev",
        "dev" => [
            "adapter" => "DB_CONNECTION",
            "host"    => "DB_HOST",
            "name"    => "DB_DATABASE",
            "user"    => "DB_USERNAME",
            "pass"    => "DB_PASSWORD",
            "port"    => "DB_PORT",
            "charset" => "utf8"
        ]
    ]
];

คำแนะนำในการใช้งาน

เมื่อไฟล์การย้ายถูกผสานรวมแล้ว ไม่อนุญาตให้แก้ไขอีกครั้ง หากเกิดปัญหาจำเป็นต้องสร้างไฟล์การดำเนินการใหม่หรือลบไฟล์ทำการดำเนินการ

กฎเกณฑ์การตั้งชื่อของไฟล์การสร้างตาราง

{time(auto create)}_create_{ชื่อตารางเป็นภาษาอังกฤษตัวเล็ก}

กฎเกณฑ์การตั้งชื่อของไฟล์การแก้ไขตาราง

{time(auto create)}_modify_{ชื่อตารางเป็นภาษาอังกฤษตัวเล็ก+รายการแก้ไขเป็นภาษาอังกฤษตัวเล็ก}

กฎเกณฑ์การตั้งชื่อของไฟล์การลบตาราง

{time(auto create)}_delete_{ชื่อตารางเป็นภาษาอังกฤษตัวเล็ก+รายการแก้ไขเป็นภาษาอังกฤษตัวเล็ก}

กฎเกณฑ์การตั้งชื่อของไฟล์การเติมข้อมูล

{time(auto create)}_fill_{ชื่อตารางเป็นภาษาอังกฤษตัวเล็ก+รายการแก้ไขเป็นภาษาอังกฤษตัวเล็ก}