Heim  >  Artikel  >  PHP-Framework  >  [Neue Funktion in Laravel 8] Verwenden Sie schema:dump, um Migration und Tests zu beschleunigen

[Neue Funktion in Laravel 8] Verwenden Sie schema:dump, um Migration und Tests zu beschleunigen

藏色散人
藏色散人nach vorne
2020-08-11 13:31:302164Durchsuche

eingeführt, um die neue Funktion von Laravel 8 vorzustellen: Verwenden Sie SCHEMA: DUMP, um die Migration und den Test zu beschleunigen, ich hoffe, Freunden in Not zu helfen!

Laravel 8 wird später in diesem Jahr einen neuen schema:dump-Befehl veröffentlichen. Dieser Befehl ist für bestehende Projekte nützlich, da er alte, nicht mehr benötigte Migrationen entfernt und den Test- und CI-Prozess beschleunigt. Taylor Otwell erklärt diese Funktion in seinem

Pull-Request[Neue Funktion in Laravel 8] Verwenden Sie schema:dump, um Migration und Tests zu beschleunigen:

Dieser PR fügt den Befehl php artisan schema:dump hinzu, der mysqldump oder pgdump verwendet, um den aktuellen Status des Schemas zu speichern in der Datei „database/schema/{connection}-schema.mysql“. schema:dump 命令。 此命令对现有项目非常有用,因为它删除了不再需要的旧迁移并加快了测试和 CI process。 Taylor Otwell 在他的 pull request 中解释了此功能:

此PR增加了 php artisan schema:dump 命令,该命令使用 mysqldump 或 pgdump 将 schema 的当前状态转储到 database/schema/{connection}-schema.mysql 文件中。

当此文件存在并且 php artisan migrationphp artisan migration:fresh 已运行并且尚未对数据库z执行任何迁移(迁移表为空)时,此架构文件将首先加载到数据库中,然后所有未完成的迁移将执行。 这意味着该 schema 文件通常仅在本地开发或 CI 测试期间有效使用。 在生产中,您通常已经具有过去运行的迁移,因此永远不会触发此 schema 文件。

运行 schema:dump 并且项目中存在 schema 转储文件后,您可以删除已将其迁移到生产环境的旧迁移文件。

此功能解决了两个问题:

1、它将清除 schema 文件夹中的旧迁移文件,这些文件在旧项目中可能会很大。

2、由于有了 schema 文件,测试的运行速度要快得多,并且 Laravel不 需要在测试过程中执行所有迁移。

该命令在您的项目中将如下所示:

php artisan schema:dump

# 自动清理旧迁移文件
php artisan schema:dump --prune

# 指定数据库链接
php artisan schema:dump --database=pgsql

此功能已合并到 masterDieses Schema tritt auf, wenn diese Datei vorhanden ist und php artisan migration oder php artisan migration:fresh ausgeführt wurde und keine Migration auf Datenbank z durchgeführt wurde (Migrationstabelle ist leer). ) Die Dateien werden zuerst in die Datenbank geladen und dann werden alle ausstehenden Migrationen ausgeführt. Dies bedeutet, dass die Schemadatei normalerweise nur für die Verwendung während der lokalen Entwicklung oder des CI-Tests gültig ist. In der Produktion werden in der Regel bereits Migrationen ausgeführt, sodass diese Schemadatei nie ausgelöst wird.

Nachdem Sie schema:dump ausgeführt haben und die Schema-Dump-Datei im Projekt vorhanden ist, können Sie die alte Migrationsdatei löschen, die Sie in die Produktion migriert haben.

Diese Funktion löst zwei Probleme:

1. Es löscht alte Migrationsdateien im Schemaordner, der in alten Projekten groß sein kann.
🎜2. Dank der Schemadatei läuft der Test viel schneller und Laravel muss nicht alle Migrationen während des Testvorgangs durchführen. 🎜🎜Der Befehl wird in Ihrem Projekt so aussehen: 🎜rrreee🎜Diese Funktion wurde in den Zweig master integriert, was bedeutet, dass sie in Laravel 8 verfügbar sein wird. Um mehr über diese Funktion zu erfahren, ist der 🎜8.x Schema Dump🎜 die beste Anlaufstelle. 🎜🎜🎜Originaladresse: https://laravel-news.com/schema-dump🎜🎜Übersetzungsadresse: https://learnku.com/laravel/t/43497🎜🎜

Das obige ist der detaillierte Inhalt von[Neue Funktion in Laravel 8] Verwenden Sie schema:dump, um Migration und Tests zu beschleunigen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:learnku.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen