Maison > Article > développement back-end > Vous apprendre à utiliser l'outil de migration de base de données PHP "Phinx"
Cet article partagera avec vous les connaissances pertinentes sur Phinx, l'outil de migration de bases de données dans le traitement PHPPhinx est particulièrement adapté au développement, aux tests, aux informations de champ de synchronisation de bases de données en ligne, aux informations sur les données, à la génération et à la synchronisation de données de test, etc. J'espère que cela sera utile à tout le monde.
Adresse du document : https://tsy12321.gitbooks.io/phinx-doc/content
1 Installer
composer require nhzex/think-phinx
2. exécutez php supplier/ directement bin/phinx init peut générer le fichier de configuration
Une autre méthode consiste à utiliser directement le fichier php pour créer le fichier de configurationExécutez directement php supplier/bin/phinx init pour générer le fichier de configurationUne autre méthode consiste à utiliser directement le php pour créer le fichier de configuration 3. Utilisez phinx.php pour configurerphp vendor/bin/phinx
5. php supplier/bin/phinx create migration
6. Créé /db/migrations/20180310020523_migration.php est maintenant généré
Modifiez ce fichier et ajoutez le contenu de création de base de données.
<?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" ) ) );7. , un identifiant auto-incrémenté sera ajouté comme clé primaire
Exécuter php supplier/bin/phinx migrate
8 Initialiser les donnéesExécuter php supplier/bin/phinx seed:create CategorySeeder
. Le système crée automatiquement ./db/seeds/CategorySeeder.php 9. Modify CategorySeeder.phpExécutez php supplier/bin/phinx seed:run et toutes les graines seront exécutées
10. Si vous souhaitez exécuter la graine spécifiée, vous devez la spécifier avec le paramètre -sphp seller/bin/phinx seed:run -s CategorySeeder
11 Mettre à jour la structure de la tableQuand. vous devez mettre à jour la structure de la table, vous devez créer une autre migration
Exécuter php supplier/bin/phinx créer ChangeArtist Ensuite, écrivez le contenu qui doit être mis à jour dans la fonction de changementpublic 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(); }Enfin, exécutez php supplier/bin/ phinx migrateLa migration précédemment exécutée ne sera pas exécutée, seule la partie mise à jour sera exécutée. 12. Rollback
public function change() {
$this->execute('alter table resource drop column artist ;');
$resource = $this->table('resource');
$resource->addColumn('artist', 'string', ['limit'=>128, 'default'=>'']);
$resource->update();
}
php vendor/bin/phinx rollback
Générer des fichiers
php vendor/bin/phinx seed:create UserSeeder php vendor/bin/phinx seed:run -e productphinx est particulièrement adapté au développement, aux tests, aux informations sur les champs de synchronisation de bases de données en ligne, aux informations sur les données, à la génération et à la synchronisation. données, etc., il est donc particulièrement adapté à une utilisation dans le processus de développement en équipe, en particulier pour un nouveau projet. Tant que vous insistez pour utiliser phinx pour un déploiement indépendant au début du projet, à chaque fois que vous modifiez la table de la base de données. informations, les membres de l'équipe peuvent utiliser git ou svn. La méthode synchronise le code puis exécute la commande d'exécution mentionnée ci-dessus pour synchroniser les informations de la table de bibliothèque, évitant ainsi la pénibilité et les erreurs liées à la synchronisation des informations de la table de bibliothèque dans différents environnements de développement au cours du développement traditionnel. Il existe un élément de configuration "default_migration_table" => "phinxlog" dans phinx.php. C'est également une mesure pour garantir qu'elles ne sont pas exécutées à plusieurs reprises, il n'y a donc pas lieu de s'inquiéter de la perte ou de la répétition. l'exécution de la commande. Apprentissage recommandé : "
Tutoriel vidéo PHP
"Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!