Table des matières
Bases de la migration
Convention de dénomination des fichiers de migration
Exécuter des migrations avant et arrière
Maison cadre php Laravel Analyse simple de la base de données et de la migration de bases de données dans le framework Laravel

Analyse simple de la base de données et de la migration de bases de données dans le framework Laravel

Jul 31, 2018 pm 04:41 PM
laravel框架

La méthode de développement du framework Laravel est agile et itérative, et vous ne vous attendez pas à obtenir tout le code correct du premier coup. Au lieu de cela, nous écrivons du code, testons et interagissons avec nos utilisateurs finaux et affinons notre compréhension.

Pour le travail, nous avons besoin d'un ensemble de pratiques de soutien. Nous utilisons des outils de contrôle de version comme Subversion, GIT ou Mercurial pour stocker les fichiers de code source de l'application, ce qui nous permet d'annuler les erreurs et de suivre les modifications pendant le développement.

Mais lorsque les applications changent, il existe des domaines que nous ne pouvons pas gérer efficacement en utilisant uniquement le contrôle de version. Au fur et à mesure de notre développement, le schéma de base de données de l'application Laravel a continué d'évoluer : nous avons ajouté une table ici, renommé des colonnes là, supprimé des index, etc. Les modifications de la base de données sont effectuées en phase avec le code de l'application.

Vous avez besoin d'un moyen sophistiqué pour suivre les modifications du schéma de votre base de données. Il existe généralement plusieurs approches :

  • Lorsque vous travaillez au sein d'une équipe de développement, tout le monde doit savoir tout changement de schéma.

  • Lorsque vous déployez sur un serveur de production, vous devez disposer d'un moyen robuste pour mettre à niveau votre schéma de base de données.

  • Si vous travaillez sur plusieurs machines, vous devez synchroniser tous les schémas de base de données.

Garder le schéma de base de données synchronisé avec le code de l'application a toujours été un travail très fastidieux sans conventions et disciplines strictes à suivre pour les développeurs d'applications. Le développeur (ou l'administrateur de la base de données) apporte les modifications de schéma requises. Toutefois, si le code de l'application est restauré vers une version précédente, il est difficile d'annuler les modifications apportées au schéma de la base de données, ce qui entraîne une incohérence des informations sur la version de la base de données avec celles du code de l'application.

La migration est le moyen utilisé par Laravel pour vous aider à faire évoluer l'architecture des données de votre application sans vous obliger à supprimer ou à reconstruire la base de données à chaque fois que vous effectuez une modification. Aucune suppression ni reconstruction signifie que vous ne perdez pas de données à chaque fois que vous effectuez une modification. Le seul changement lorsque vous effectuez une migration consiste à déplacer le schéma de base de données d'une version à une autre, que ce soit vers l'avant ou vers l'arrière.

La migration Laravel vous offre un moyen de modifier le schéma de la base de données de manière itérative. Elle ne vous oblige pas à utiliser des opérations SQL, mais vous permet d'utiliser du code PHP. Le générateur de schéma Laravel nous permet de créer rapidement des tables de base de données et d'insérer des colonnes ou des index. Il utilise une syntaxe propre et expressive pour manipuler les bases de données. Vous pourriez penser que la migration Laravel est un contrôle de version de votre base de données.

En définissant une interface de niveau supérieur pour créer et maintenir des schémas de base de données, vous pouvez la définir de manière indépendante de la base de données. En utilisant PHP pour créer des tables, définir des colonnes et des index, écrire le schéma une fois et l'appliquer à n'importe quel backend de base de données pris en charge. Comme avantage supplémentaire, Laravel garde une trace des migrations qui ont été appliquées et de celles qui doivent encore l'être.

Bases de la migration

Une migration Laravel est simplement un fichier source PHP dans le répertoire app/database/migrations de votre application. Chaque fichier contient un ensemble de modifications apportées à la base de données sous-jacente. Les modifications apportées à la base de données sont effectuées dans le code PHP plutôt que dans le SQL spécifique à la base de données. Votre code de migration PHP est finalement converti en DDL qui correspond à votre base de données actuelle, ce qui facilite grandement le changement de plateforme de base de données. Étant donné que le code de migration est stocké dans son propre répertoire, il doit être inclus dans le contrôle de version comme tout autre code de projet. Les migrations Laravel sont exécutées explicitement à partir de la ligne de commande à l'aide des outils Artisan.

Convention de dénomination des fichiers de migration

Dans les anciennes versions de Laravel, les fichiers migrés ont des noms plus simples, tels que 001_create_employees_table.php. Laravel 3 (Laravel 4.1 et identique) a apporté une nouvelle convention de dénomination dans laquelle la première partie du nom est passée d'un numéro de séquence à quelque chose de plus long, comme 2014_03_11_032903_create_employees_table.php. Le nom du fichier est au format AAAA_MM_JJ_HHMMSS_some_meaningful_name.php, ce qui signifie un horodatage UTC identifié suivi d'un nom de migration.

Les nouveaux noms plus larges permettent d'éviter les conflits de noms, et si vous êtes un développeur travaillant en équipe, vous pouvez vérifier vos propres migrations.

De plus, Laravel migre les horodatages des fichiers afin qu'ils puissent être exécutés séquentiellement. Les numéros d'horodatage sont essentiels aux migrations, car ils définissent quelle migration est appliquée dans l'ordre dans lequel les numéros de version de migration individuels sont appliqués.

Comme les scripts SQL, les migrations sont exécutées par le haut, ce qui nécessite l'exécution de ces fichiers. L'exécution séquentielle supprime la possibilité de tenter d'insérer des colonnes lorsque la table n'existe pas.

Bien que vous puissiez créer des fichiers de migration manuellement, il est plus facile (et moins sujet aux erreurs) d'utiliser les outils Artisan pour générer des scripts de migration. Vous pouvez modifier ces fichiers ultérieurement si nécessaire.

Exécuter des migrations avant et arrière

Utilisez les outils Artisan pour migrer vers la base de données. Laravel fournit un ensemble de tâches artisanales qui se résument à l'exécution d'un ensemble spécifique de migrations.

[Remarque]Vous pouvez exécuter la liste des artisans pour afficher la liste des tâches prises en charge par l'artisan . La plupart des tâches liées à la migration des données portent le préfixe migrate :.

Il n'y a que quelques tâches courantes que vous devez connaître :

  • migrate:install
    La première tâche artisanale liée à la migration que vous pouvez utiliser est migrate:install. En interne, Laravel utilise des tables spéciales pour suivre quelles migrations ont été exécutées. Pour créer cette table, utilisez simplement l'outil de ligne de commande artisan :
    $php artisan migrate:install

  • migrate
    Vous exécuterez la tâche migrate pour mettre à jour fréquemment votre table. pour prendre en charge les dernières tables et colonnes que vous ajoutez à votre application. Dans sa forme la plus basique, il exécute uniquement la méthode up() sur toutes les migrations qui n'ont pas encore été exécutées. S'il n'y a pas de migration de ce type, elle se terminera. Il exécutera ces migrations en fonction de la date à laquelle elles ont été migrées.

  • migrate:rollback
    Faites parfois des erreurs lors de l'écriture des migrations. Si vous avez déjà exécuté la migration, vous ne pouvez pas simplement la modifier et la réexécuter : Laravel suppose qu'il a déjà exécuté la migration, donc lorsque vous exécutez à nouveau artisan migrer, ne fera rien. vous devez utiliser un artisan migrate : rollback annule la migration, puis la modifie, puis exécute artisan migrez pour exécuter la version correcte.

En général, modifier une migration existante n'est pas une bonne idée : cela nécessitera un travail supplémentaire pour vous et vos collègues, et ce sera un casse-tête si la migration des versions existantes est déjà en cours. sur les machines de production. Au lieu de cela, vous devez écrire une nouvelle migration pour effectuer les modifications requises.

[Note]artisan migrate:rollback supprimera la dernière application de migration. Laravel remonte à l'ensemble de "l'opération" de migration. Par conséquent, si la dernière commande de migration a exécuté 15 migrations, les 15 migrations seront toutes annulées. Veuillez noter que lorsque vous supprimez une colonne ou un tableau, les données seront perdues.

migrate:reset
Annuler toutes les migrations (toutes les tables et données seront supprimées)

migrate:refresh
la tâche artisanale migrate:refresh supprimera la base de données et la recréera et chargera le schéma actuel. Il s'agit d'un raccourci pratique pour exécuter une réinitialisation et réexécuter ensuite toutes les migrations.

migrate:make
artisan migrate:make commande indique Laravel pour générer un squelette de fichier de migration (qui est en fait un PHP) et stockez-le dans le dossier app/database/migrations. Vous pouvez ensuite éditer ce fichier pour étoffer vos définitions de table/index. Ensuite, artisan Lorsque la commande migrate est exécutée, l'artisan interrogera ce fichier pour générer Code réel pour SQL DDL.

Recommandations associées :

Comment connecter Laravel5 à sqlserver via freetds (code)

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!

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Vous avez un jeu croisé?
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Quel est le meilleur, Django ou Laravel? Quel est le meilleur, Django ou Laravel? Mar 28, 2025 am 10:41 AM

Django et Laravel sont tous deux des frameworks à pile. Django convient aux développeurs Python et à la logique métier complexe, tandis que Laravel convient aux développeurs PHP et à la syntaxe élégante. 1.Django est basé sur Python et suit la philosophie "Battery-Complete", adaptée au développement rapide et à une grande concurrence. 2.Laravel est basé sur PHP, mettant l'accent sur l'expérience du développeur et convient aux projets de petite et moyenne taille.

Laravel et le backend: alimentation logique d'application Web Laravel et le backend: alimentation logique d'application Web Apr 11, 2025 am 11:29 AM

Comment Laravel joue-t-il un rôle dans la logique backend? Il simplifie et améliore le développement backend par le biais de systèmes de routage, d'éloquente, d'authentification et d'autorisation, d'événements et d'auditeurs et d'optimisation des performances. 1. Le système de routage permet la définition de la structure d'URL et demande la logique de traitement. 2.Lao-éloquente simplifie l'interaction de la base de données. 3. Le système d'authentification et d'autorisation est pratique pour la gestion des utilisateurs. 4. L'événement et l'écoute implémentent la structure de code couplée de manière lâche. 5. L'optimisation des performances améliore l'efficacité de l'application par la mise en cache et la file d'attente.

Quel est le meilleur PHP ou Laravel? Quel est le meilleur PHP ou Laravel? Mar 27, 2025 pm 05:31 PM

PHP et Laravel ne sont pas directement comparables, car Laravel est un cadre basé sur PHP. 1.Php convient aux petits projets ou à un prototypage rapide car il est simple et direct. 2. Laravel convient à de grands projets ou à un développement efficace car il offre des fonctions et des outils riches, mais a une courbe d'apprentissage abrupte et peut ne pas être aussi bon que PHP pur.

Laravel est-il un frontend ou un backend? Laravel est-il un frontend ou un backend? Mar 27, 2025 pm 05:31 PM

LaravelisabackendFrameworkBuiltonPhp, conçue pourwebapplicationdevelopment.itfocusonServer-sidelogic, databasemanagement, andapplicationsstructure, andcanbenegrategratedwithfrontentechnologies likevue.jsorrectForfull-stackdevelopment.

Pourquoi Laravel est-il si populaire? Pourquoi Laravel est-il si populaire? Apr 02, 2025 pm 02:16 PM

La popularité de Laravel comprend son processus de développement simplifié, offrant un environnement de développement agréable et des caractéristiques riches. 1) Il absorbe la philosophie de conception des rubyonrails, combinant la flexibilité de PHP. 2) Fournir des outils tels que l'éloquente, le moteur de modèle de lame, etc. pour améliorer l'efficacité du développement. 3) Son mécanisme d'architecture MVC et d'injection de dépendance rend le code plus modulaire et testable. 4) fournit des outils de débogage puissants et des méthodes d'optimisation des performances telles que les systèmes de mise en cache et les meilleures pratiques.

Laravel (PHP) contre Python: environnements de développement et écosystèmes Laravel (PHP) contre Python: environnements de développement et écosystèmes Apr 12, 2025 am 12:10 AM

La comparaison entre Laravel et Python dans l'environnement de développement et l'écosystème est la suivante: 1. L'environnement de développement de Laravel est simple, seul PHP et compositeur sont nécessaires. Il fournit une riche gamme de packages d'extension tels que Laravelforge, mais la maintenance des forfaits d'extension peut ne pas être opportun. 2. L'environnement de développement de Python est également simple, seuls Python et PIP sont nécessaires. L'écosystème est énorme et couvre plusieurs champs, mais la gestion de la version et de la dépendance peut être complexe.

Polyvylity de Laravel: des sites simples aux systèmes complexes Polyvylity de Laravel: des sites simples aux systèmes complexes Apr 13, 2025 am 12:13 AM

Le projet de développement de Laravel a été choisi en raison de sa flexibilité et de sa puissance pour répondre aux besoins de différentes tailles et complexités. Laravel fournit un système de routage, Eloquentorm, une ligne de commande artisanale et d'autres fonctions, soutenant le développement de blogs simples aux systèmes complexes au niveau de l'entreprise.

Fonction principale de Laravel: développement backend Fonction principale de Laravel: développement backend Apr 15, 2025 am 12:14 AM

Les fonctions principales de Laravel dans le développement back-end incluent le système de routage, l'éloquente, la fonction de migration, le système de cache et le système de file d'attente. 1. Le système de routage simplifie la cartographie de l'URL et améliore l'organisation et la maintenance du code. 2.Lesormorm fournit des opérations de données orientées objet pour améliorer l'efficacité du développement. 3. La fonction de migration gère la structure de la base de données via le contrôle de la version pour assurer la cohérence. 4. Le système de cache réduit les requêtes de la base de données et améliore la vitesse de réponse. 5. Le système de file d'attente traite efficacement les données à grande échelle, évite de bloquer les demandes des utilisateurs et d'améliorer les performances globales.

See all articles