Heim > Artikel > Backend-Entwicklung > Erfahren Sie, wie Sie das PHP-Datenbankmigrationstool „Phinx“ verwenden.
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.
Dokumentadresse: https://tsy12321.gitbooks.io/phinx-doc/content
1. Installieren Sie
composer require nhzex/think-phinx
2. Führen Sie
php vendor/bin/phinxaus
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(
'DB_HOST' => 'localhost',
'DB_NAME' => 'root',
'DB_USER' => 'root',
'DB_PWD' => '',
);
$settings = $config;
#phinx.php
<?php
require 'db_config.php';
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"
)
)
);
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('user');
$user->addColumn('open_id', 'string', ['limit'=>64]);
$user->addColumn('register_time', 'timestamp', ['default' => 'CURRENT_TIMESTAMP']);
$user->addColumn('favorite_music', 'integer', ['default'=> 0, 'comment'=>'喜欢的音乐']);
$user->addColumn('favorite_vedio', 'integer', ['default'=> 0, 'comment'=>'喜欢的视频数']);
$user->addColumn('favorite_article', 'integer', ['default'=> 0, 'comment'=>'喜欢的文章数']);
$user->addColumn('baby_birthday', 'date', ['null'=>true, 'comment'=>'宝宝生日']);
$user->addColumn('baby_sex', 'boolean', ['null'=>true, 'comment'=>'宝宝性别']);
$user->addColumn('last_login', 'datetime', ['null'=>true, 'comment'=>'最后登陆日期']);
$user->save();
}
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!