Vous apprendre à utiliser l'outil de migration de base de données PHP 'Phinx'

Libérer: 2023-04-10 22:00:01
avant
5796 Les gens l'ont consulté

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.

Vous apprendre à utiliser l'outil de migration de base de données PHP 'Phinx'

Adresse du document : https://tsy12321.gitbooks.io/phinx-doc/content

1 Installer

composer require nhzex/think-phinx
Copier après la connexion

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 configuration

Exécutez directement php supplier/bin/phinx init pour générer le fichier de configuration

Une autre méthode consiste à utiliser directement le php pour créer le fichier de configuration

3. Utilisez phinx.php pour configurer

php vendor/bin/phinx
Copier après la connexion

4. Exécutez php supplier/bin/phinx status pour afficher l'état de la connexion

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(
    &#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"
        )
    )
);
Copier après la connexion

7. , un identifiant auto-incrémenté sera ajouté comme clé primaire

Exécuter php supplier/bin/phinx migrate

8 Initialiser les données

Exécuter php supplier/bin/phinx seed:create CategorySeeder

. Le système crée automatiquement ./db/seeds/CategorySeeder.php

9. Modify CategorySeeder.php

Exé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 -s

php seller/bin/phinx seed:run -s CategorySeeder

11 Mettre à jour la structure de la table

Quand. 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 changement

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();
    }
Copier après la connexion

Enfin, exécutez php supplier/bin/ phinx migrate

La 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(&#39;alter table resource drop column artist ;&#39;);
        $resource = $this->table(&#39;resource&#39;);
        $resource->addColumn(&#39;artist&#39;, &#39;string&#39;, [&#39;limit&#39;=>128, &#39;default&#39;=>&#39;&#39;]);
        $resource->update();
    }
Copier après la connexion

13. Remplissage de données

php vendor/bin/phinx rollback
Copier après la connexion
Générer des fichiers
php vendor/bin/phinx seed:create UserSeeder
php vendor/bin/phinx seed:run -e product
Copier après la connexion
phinx 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!

Étiquettes associées:
php
source:Laravel技术社区公众号
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!