Heim > Backend-Entwicklung > PHP-Tutorial > Erfahren Sie, wie Sie das PHP-Datenbankmigrationstool „Phinx' verwenden.

Erfahren Sie, wie Sie das PHP-Datenbankmigrationstool „Phinx' verwenden.

Freigeben: 2023-04-10 22:00:01
nach vorne
5921 Leute haben es durchsucht

Dieser Artikel vermittelt Ihnen das relevante Wissen über Phinx, das Datenbankmigrationstool in der PHPVerarbeitung. Phinx eignet sich besonders für Entwicklung, Tests, Online-Datenbanksynchronisierungsfeldinformationen, Dateninformationen, Generierung und Synchronisierung von Testdaten usw. Ich hoffe, dass es für alle von Nutzen sein wird.

Erfahren Sie, wie Sie das PHP-Datenbankmigrationstool „Phinx' verwenden.

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

1. Installieren Sie

composer require nhzex/think-phinx
Nach dem Login kopieren

2. Führen Sie

php vendor/bin/phinx
Nach dem Login kopieren
aus

PHP Vendor/ direkt ausführen bin/phinx init kann die Konfigurationsdatei generieren

Eine andere Methode besteht darin, die PHP-Datei direkt zu verwenden, um die Konfigurationsdatei zu erstellen PHP-Datei zum Erstellen der Konfigurationsdatei

3. Verwenden Sie phinx.php, um

<?php
$config = array(
    &#39;DB_HOST&#39; => &#39;localhost&#39;,
    &#39;DB_NAME&#39; => &#39;root&#39;,
    &#39;DB_USER&#39; => &#39;root&#39;,
    &#39;DB_PWD&#39; => &#39;&#39;,
);
$settings = $config;
#phinx.php
<?php
require &#39;db_config.php&#39;;
return array(
    "paths" => array(
        "migrations"    => "db/migrations",
        "seeds"         => "db/seeds"
    ),
    "environments"   => array(
        "defaut_migration_table"    => "phinxlog",
        "default_database"          => "lleg",
        "default_environment"       => "development"
        "production"   => array(
            "adapter"   => "mysql",
            "host"      => $settings["DB_HOST"],
            "name"      => $settings["DB_NAME"],
            "user"      => $settings["DB_USER"],
            "pass"      => $settings["DB_PWD"],
            "port"      => 3306,
            "charset"   => "utf8"
        ),
        "development"   => array(
            "adapter"   => "mysql",
            "host"      => $settings["DB_HOST"],
            "name"      => $settings["DB_NAME"],
            "user"      => $settings["DB_USER"],
            "pass"      => $settings["DB_PWD"],
            "port"      => 3306,
            "charset"   => "utf8"
        )
    )
);
Nach dem Login kopieren
4. Führen Sie den PHP-Anbieter/bin/phinx-Status aus, um den Verbindungsstatus anzuzeigen

5 php seller/bin/phinx create migration

6. Erstellt /db/migrations/20180310020523_migration.php wird jetzt generiert

Diese Datei bearbeiten und Datenbankerstellungsinhalt hinzufügen.

public function change() {
        $user = $this->table(&#39;user&#39;);
        $user->addColumn(&#39;open_id&#39;, &#39;string&#39;, [&#39;limit&#39;=>64]);
        $user->addColumn(&#39;register_time&#39;, &#39;timestamp&#39;, [&#39;default&#39; => &#39;CURRENT_TIMESTAMP&#39;]);
        $user->addColumn(&#39;favorite_music&#39;, &#39;integer&#39;, [&#39;default&#39;=> 0, &#39;comment&#39;=>&#39;喜欢的音乐&#39;]);
        $user->addColumn(&#39;favorite_vedio&#39;, &#39;integer&#39;, [&#39;default&#39;=> 0, &#39;comment&#39;=>&#39;喜欢的视频数&#39;]);
        $user->addColumn(&#39;favorite_article&#39;, &#39;integer&#39;, [&#39;default&#39;=> 0, &#39;comment&#39;=>&#39;喜欢的文章数&#39;]);
        $user->addColumn(&#39;baby_birthday&#39;, &#39;date&#39;, [&#39;null&#39;=>true, &#39;comment&#39;=>&#39;宝宝生日&#39;]);
        $user->addColumn(&#39;baby_sex&#39;, &#39;boolean&#39;, [&#39;null&#39;=>true, &#39;comment&#39;=>&#39;宝宝性别&#39;]);
        $user->addColumn(&#39;last_login&#39;, &#39;datetime&#39;, [&#39;null&#39;=>true, &#39;comment&#39;=>&#39;最后登陆日期&#39;]);
        $user->save();
    }
Nach dem Login kopieren

7 , eine automatisch inkrementierte ID wird als Primärschlüssel hinzugefügt Das System erstellt automatisch die erstellte Datei ./db/seeds/CategorySeeder.php

9. Ändern Sie CategorySeeder.php

Führen Sie php seller/bin/phinx seeds:run aus und alle Seeds werden ausgeführt

10. Wenn Sie den angegebenen Seed ausführen möchten, müssen Sie ihn mit dem Parameter -s angeben Sie müssen die Tabellenstruktur aktualisieren, Sie müssen eine weitere Migration erstellenFühren Sie PHP Vendor/Bin/Phinx aus und erstellen Sie ChangeArtist. phinx migrate

Die zuvor ausgeführte Migration wird nicht ausgeführt, sondern nur der aktualisierte Teil. 12. Rollback Daten usw., daher eignet es sich besonders für den Einsatz im Teamentwicklungsprozess, insbesondere für ein neues Projekt. Solange Sie zu Beginn des Projekts darauf bestehen, phinx für die unabhängige Bereitstellung zu verwenden, dann jedes Mal, wenn Sie die Datenbanktabelle ändern Informationen können Teammitglieder verwenden git oder svn Methode synchronisiert den Code und führt dann den oben genannten Ausführungsbefehl aus, um die Bibliothekstabelleninformationen zu synchronisieren, wodurch die Mühe und Fehler beim Synchronisieren von Bibliothekstabelleninformationen in verschiedenen Entwicklungsumgebungen während der herkömmlichen Entwicklung vermieden werden.

In phinx.php gibt es ein Konfigurationselement „default_migration_table“ => „phinxlog“. Dies ist auch eine Maßnahme, um sicherzustellen, dass sie nicht wiederholt ausgeführt werden, sodass kein Grund zur Sorge besteht, dass sie verloren gehen oder sich wiederholen die Ausführung des Befehls.

Empfohlenes Lernen: „PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonErfahren Sie, wie Sie das PHP-Datenbankmigrationstool „Phinx' verwenden.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
php
Quelle:Laravel技术社区公众号
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage