Migration Veritabanı Geçiş Aracı Phinx
Açıklama
Phinx, geliştiricilerin veritabanını kolayca değiştirmesine ve bakımını yapmasına olanak tanır. İnsan hatası ile yazılan SQL ifadelerini önleyerek, güçlü bir PHP API'si kullanarak veritabanı geçişlerini yönetir. Geliştiriciler, veritabanı geçişlerini versiyon kontrolü ile yönetebilirler. Phinx, farklı veritabanları arasında veri taşımasını kolaylaştırır. Hangi geçiş scriptlerinin çalıştırıldığını takip edebilir; böylece geliştiriciler veritabanının durumunu düşünmeden daha iyi sistemler yazmaya odaklanabilirler.
Proje Adresi
https://github.com/cakephp/phinx
Kurulum
composer require robmorgan/phinx
Resmi Türkçe Belgeleri Adresi
Detaylı kullanım için resmi Türkçe belgelere bakabilirsiniz, burada sadece webman içinde nasıl yapılandırılacağına değinilecektir.
https://tsy12321.gitbooks.io/phinx-doc/content/
Geçiş Dosyası Dizin Yapısı
.
├── app Uygulama Dizini
│ ├── controller Kontrolcü Dizini
│ │ └── Index.php Kontrolcü
│ ├── model Model Dizini
......
├── database Veritabanı Dosyası
│ ├── migrations Geçiş Dosyaları
│ │ └── 20180426073606_create_user_table.php
│ ├── seeds Test Verileri
│ │ └── UserSeeder.php
......
phinx.php Yapılandırması
Proje kök dizininde phinx.php dosyası oluşturun.
<?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"
]
]
];
Kullanım Önerileri
Geçiş dosyaları bir kez kod birleştirildiğinde tekrar değiştirilmemelidir; sorun çıkarsa yeni bir değişiklik veya silme işlem dosyası oluşturulmalıdır.
Veri Tabloları Oluşturma İşlem Dosyası İsimlendirme Kuralı
{time(auto create)}_create_{tablo_adı_ingilizce_küçük}
Veri Tabloları Değiştirme İşlem Dosyası İsimlendirme Kuralı
{time(auto create)}_modify_{tablo_adı_ingilizce_küçük+belirli_değişiklik_ingilizce_küçük}
Veri Tabloları Silme İşlem Dosyası İsimlendirme Kuralı
{time(auto create)}_delete_{tablo_adı_ingilizce_küçük+belirli_değişiklik_ingilizce_küçük}
Veri Doldurma Dosyası İsimlendirme Kuralı
{time(auto create)}_fill_{tablo_adı_ingilizce_küçük+belirli_değişiklik_ingilizce_küçük}