Migration数据库迁移工具 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_{ชื่อ_table_ภาษาอังกฤษที่เป็นตัวพิมพ์เล็ก}
数据表修改操作文件命名规则
{time(auto create)}_modify_{ชื่อ_table_ภาษาอังกฤษที่เป็นตัวพิมพ์เล็ก+การเปลี่ยนแปลงที่เฉพาะเจาะจงในภาษาอังกฤษ}
数据表删除操作文件命名规则
{time(auto create)}_delete_{ชื่อ_table_ภาษาอังกฤษที่เป็นตัวพิมพ์เล็ก+การเปลี่ยนแปลงที่เฉพาะเจาะจงในภาษาอังกฤษ}
填充数据文件命名规则
{time(auto create)}_fill_{ชื่อ_table_ภาษาอังกฤษที่เป็นตัวพิมพ์เล็ก+การเปลี่ยนแปลงที่เฉพาะเจาะจงในภาษาอังกฤษ}