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}