Les migrations de la base de données de Yii fournissent une manière robuste et contrôlée par version de gérer les modifications de votre schéma de base de données. Le concept de base consiste à créer des classes de migration, chacune représentant un seul changement atomique dans votre base de données. Ces changements sont généralement des ajouts, des modifications ou des suppressions de tables, colonnes, index et relations.
Voici une ventilation du processus:
yii migrate / création
Commande pour générer un nouveau fichier de migration. Cette commande vous invite à un nom, qui est ensuite utilisé pour créer une classe PHP étendant yii \ db \ migration
. Cette classe contiendra up ()
et down ()
méthodes. up ()
et down ()
: La méthode up ()
contient les instructions sql pour appliquer les modifications de schéma. La méthode down ()
contient les instructions SQL inversées pour annuler ces modifications, cruciale pour les reculs. Yii fournit des méthodes d'assistance comme createTable ()
, addColumn ()
, dropcolumn ()
, droptable ()
, etc., ce qui facilite la rédaction de migrations. up ()
des migrations non appliquées. yii migrate / down
renvoie la migration la plus récemment appliquée en exécutant sa méthode down ()
. Vous pouvez spécifier un nombre pour retourner plusieurs migrations. Exemple: Une migration pour créer un Les utilisateurs
peuvent ressembler à ceci:
<code class="php"> & lt ;? php utilise yii \ db \ migration; Classe M231027_100000_CREATE_USERS_TABLE Étend la migration {Fonction publique Up () {$ this- & gt; CreateTable ('Users', ['id' = & gt; $ this- & gt; primairey (), 'username' = & gt; $ this- & gt; String (255) - & gt; Notnull () - & gt;), '. = & gt; $ this- & gt; String (255) - & gt; notnull () - & gt; UNIQUE (), 'password_hash' = & gt; $ this- & gt; Integer () - & gt; notnull (),]); } fonction publique Down () {$ this- & gt; droptable ('utilisateurs'); }} </code>
La rédaction de migrations de base de données efficaces est essentielle pour maintenir un schéma de base de données propre et gérable. Voici quelques meilleures pratiques:
down ()
: implémentez toujours la méthode down ()
pour inverser les modifications apportées dans up ()
. Ceci est crucial pour les reculs et assure l'intégrité des données. Testez soigneusement votre down ()
. CreateTable ()
, addcolumn ()
, addForeignKey ()
, etc.) au lieu d'écrire bruts SQL. Cela améliore la lisibilité et la portabilité dans différents systèmes de base de données. Les conflits peuvent survenir si plusieurs développeurs fonctionnent simultanément sur les migrations ou si une migration échoue à mi-chemin. YII fournit des mécanismes pour gérer ces situations:
up ()
d'une migration échoue, la migration entière est reculée automatiquement, préservant l'intégrité des données. Voici pourquoi:
Cependant, si vous devez inclure l'ensemencement, vous pouvez ajouter une logique d'insertion de données dans la méthode up ()
de votre migration. N'oubliez pas d'inclure la suppression de données correspondante dans la méthode down ()
pour permettre des recul appropriés. Cette approche est généralement découragée pour les grands ensembles de données. Envisagez d'utiliser yii migrer / créer
pour générer des migrations distinctes spécifiquement pour l'ensemencement des données, ce qui rend le processus plus organisé. Alternativement, envisagez d'utiliser des données de luminaire ou un script de semis de données dédié pour des ensembles de données plus grands et plus complexes.
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!