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_{तालिका का नाम अंग्रेजी में छोटे अक्षरों में}

डेटा तालिका संशोधन संचालन फ़ाइल नामकरण नियम

{time(auto create)}_modify_{तालिका का नाम अंग्रेजी में छोटे अक्षरों में + विशिष्ट संशोधन आइटम अंग्रेजी में छोटे अक्षरों में}

डेटा तालिका हटाने संचालन फ़ाइल नामकरण नियम

{time(auto create)}_delete_{तालिका का नाम अंग्रेजी में छोटे अक्षरों में + विशिष्ट संशोधन आइटम अंग्रेजी में छोटे अक्षरों में}

डेटा को भरने वाली फ़ाइल का नामकरण नियम

{time(auto create)}_fill_{तालिका का नाम अंग्रेजी में छोटे अक्षरों में + विशिष्ट संशोधन आइटम अंग्रेजी में छोटे अक्षरों में}