使用迁移在 Laravel 中进行数据库架构管理:深入教程

使用迁移在 laravel 中进行数据库架构管理:深入教程

laravel 迁移是管理数据库架构更改的好方法。它们允许您对数据库结构进行版本控制,并随时间轻松回滚或修改更改。在本指南中,我们将逐步探索在 laravel 中创建、运行和回滚迁移的过程,并提供一个实践示例。

第 1 步:设置 laravel 环境

开始迁移之前,请确保已安装 laravel。您可以通过 composer 执行此操作:

composer create-project --prefer-dist laravel/laravel migration-demo

然后导航到项目文件夹:

cd migration-demo

第2步:数据库配置

要配置数据库,请在 laravel 项目中打开 .env 文件并更新数据库凭据:

db_connection=mysqldb_host=127.0.0.1db_port=3306db_database=your_database_namedb_username=your_usernamedb_password=your_password

配置数据库后,如果本地环境尚不存在,您可以创建一个新数据库。

第 3 步:创建迁移

您可以使用 artisan 命令创建新的迁移。例如,要创建用户表迁移:

php artisan make:migration create_users_table

该命令在database/migrations目录中生成一个迁移文件。文件名将包含时间戳,类似于 2024_09_13_123456_create_users_table.php。

第 4 步:定义迁移架构

打开生成的迁移文件。你会发现两个方法:up()(定义表创建)和down()(定义表如何回滚)。

创建用户表的示例:

id(); // primary key            $table->string('name');            $table->string('email')->unique();            $table->timestamp('email_verified_at')->nullable();            $table->string('password');            $table->remembertoken();            $table->timestamps(); // created at & updated at        });    }    /**     * reverse the migrations.     *     * @return void     */    public function down()    {        schema::dropifexists('users');    }}

在 up() 方法中,我们定义了 users 表的结构。 down() 方法定义了在回滚时如何删除表(即删除表)。

第 5 步:运行迁移

要运行迁移并在数据库中创建用户表,请使用以下命令:

php artisan migrate

此命令将执行所有尚未运行的迁移。您应该看到以下输出:

migrating: 2024_09_13_123456_create_users_tablemigrated:  2024_09_13_123456_create_users_table (0.45 seconds)

您可以验证用户表是否已在数据库中创建。

第 6 步:回滚迁移

要回滚最近的迁移,请使用以下命令:

php artisan migrate:rollback

这将删除用户表或最近迁移批次中定义的任何表。

要回滚多个个迁移步骤,请使用:

php artisan migrate:rollback --step=2

这将回滚最后两批迁移。

第 7 步:修改现有表

如果要修改现有表(例如添加列),请创建新的迁移:

php artisan make:migration add_phone_to_users_table --table=users

这将创建一个用于修改用户表的迁移。然后您可以定义更改:

public function up(){    schema::table('users', function (blueprint $table) {        $table->string('phone')->nullable(); // add phone column    });}public function down(){    schema::table('users', function (blueprint $table) {        $table->dropcolumn('phone'); // remove phone column    });}

运行迁移以应用更改:

php artisan migrate

第 8 步:播种数据库

laravel 还允许您使用虚拟数据为数据库播种。要创建播种机,请使用:

php artisan make:seeder userstableseeder

在位于database/seeders/userstableseeder.php的播种器文件中,您可以定义数据:

use illuminatesupportfacadesdb;use illuminatesupportfacadeshash;class userstableseeder extends seeder{    public function run()    {        db::table('users')->insert([            'name' => 'john doe',            'email' => 'john@example.com',            'password' => hash::make('password'),        ]);    }}

然后使用以下命令运行播种器:

php artisan db:seed --class=userstableseeder

您还可以在迁移过程中通过调用 databaseseeder.php 中的播种器来为数据库播种。

第 9 步:运行所有迁移和播种器

重置数据库并运行所有迁移和播种程序:

php artisan migrate:fresh --seed

此命令将删除所有表,重新运行所有迁移,并为数据库设定种子。

第 10 步:迁移最佳实践

版本控制:始终将迁移与代码一起提交到版本控制 (git)。小型迁移:将大型迁移分解为较小的迁移,以便更轻松地回滚和调试。避免更改现有迁移:如果您已经在生产中运行迁移,请创建一个新迁移来修改数据库,而不是更改现有迁移。

实践示例摘要

创建一个新的 laravel 项目。配置数据库连接的.env 文件。为用户表创建迁移。在 up() 方法中定义表模式。使用 php artisan migrate 运行迁移。通过另一个迁移添加电话列来修改用户表。根据需要回滚或重新运行迁移。使用示例数据为数据库添加种子。使用迁移有效管理数据库状态。

通过执行以下步骤,您可以使用迁移轻松管理 laravel 中的数据库架构更改。 laravel 迁移是保持数据库结构版本控制并在不同环境(如开发、登台和生产)之间同步的重要组成部分。

以上就是使用迁移在 Laravel 中进行数据库架构管理:深入教程的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1246476.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月9日 18:37:27
下一篇 2025年12月9日 18:37:34

相关推荐

  • 保护 PHP 应用程序免受 SQL 注入攻击

    阻止 sql 注入攻击对于维护 php 应用程序的安全至关重要。 sql 注入是一个漏洞,允许攻击者在您的数据库上执行任意 sql 代码,可能导致数据泄露或丢失。这是防止 php 中 sql 注入攻击的分步指南,配有实践示例和说明。 1.了解 sql 注入 当用户输入未正确清理并合并到 sql 查询…

    好文分享 2025年12月9日
    000
  • 探索 PHP 中的并发性和并行性:实践教程和技巧

    理解并发性和并行性对于编写高效的 php 应用程序至关重要,尤其是在处理需要同时处理的多个任务或操作时。这是了解和实现 php 并发性和并行性的分步指南,包含实践示例和说明。 1.并发与并行 并发:是指系统通过交错执行同时处理多个任务的能力。这并不一定意味着任务是同时执行的,只是对它们进行管理,以便…

    2025年12月9日
    000
  • PHP 函数参数绑定的最佳实践?

    PHP 函数参数绑定的最佳实践 什么是参数绑定? 参数绑定是一种将值传递给函数参数的技巧,它可以防止 SQL 注入攻击。它涉及在 SQL 查询中使用占位符,然后使用一个单独的过程将值绑定到这些占位符。 最佳实践 立即学习“PHP免费学习笔记(深入)”; 总是使用参数绑定:为函数参数指定值时,使用参数…

    2025年12月9日
    000
  • PHP 参数绑定与 PDO 的关系

    PHP 参数绑定与 PDO 的关系 参数绑定是 PHP 数据对象 (PDO) 中一项重要的功能,它允许我们在执行查询之前将参数传递给 SQL 语句。通过使用参数绑定,我们可以防止 SQL 注入攻击,并提高代码的可读性和可维护性。 如何使用参数绑定 要使用参数绑定,我们需要使用 PDO::prepar…

    2025年12月9日
    000
  • PHP 参数绑定与 SQL 注入的关联

    PHP 参数绑定与 SQL 注入的关联 什么是参数绑定? 参数绑定是一种数据库安全实践,通过占位符将外部数据传送到 SQL 查询中。它可以防止 SQL 注入攻击,后者是攻击者通过未经验证的数据注入恶意代码到数据库的攻击类型。 如何使用参数绑定? 使用 PHP mysqli 扩展执行参数绑定: 立即学…

    2025年12月9日
    000
  • Laravel 项目理念从初学者到高级水平 4

    Laravel 是最流行的 PHP 框架之一,以其优雅的语法和强大的功能而闻名。无论您是刚刚起步还是希望提高技能,构建项目都是最好的学习方式之一。在本文中,我们将探讨从初级到高级的 10 个 Laravel 项目想法,帮助您在 2024 年将您的技能提升到新的水平。 专业提示:如果您正在寻找一种加快…

    2025年12月9日
    000
  • 回答:我如何运行特定的phinx seeder并在phpunit中获取生成的记录?

    这个答案解决了我遇到的一个问题:在 phpunit 上运行 phinx 播种机: 回复回复:我如何运行特定的phinx seeder并获取phpunit中生成的记录? 2024 年 9 月 12 日 0 我有一个像你提到的情况,我需要在单元测试中在 mysql 数据库上运行播种器,因此我执行了以下步…

    2025年12月9日
    000
  • PHP 函数参数绑定在不同框架中的使用?

    php 函数参数绑定通过语句准备和参数绑定实现,它传递变量或值,防止 sql 注入。不同框架的参数绑定用法如下:laravel 使用 eloquent orm 的简洁语法,通过 where 方法绑定。symfony 的 doctrine orm 使用 createquerybuilder 方法,通过…

    2025年12月9日
    000
  • PHP 参数绑定与 ORM 框架的集成

    参数绑定是一种防止 sql 注入攻击的安全数据库操作技术。通过将变量绑定到 sql 语句,它涉及:准备 sql 语句并创建变量数组。使用 pdo 或 orm 框架进行绑定和执行。集成到 orm 框架后,它简化了参数绑定,自动生成安全的 sql 查询。 PHP 参数绑定与 ORM 框架集成 引言 参数…

    2025年12月9日
    000
  • PHP 参数绑定的未来发展趋势

    php 参数绑定未来发展趋势:增强类型安全,支持更严格的类型检查。扩展兼容性,与更多数据库保持兼容。性能优化,提升查询性能。无缝集成框架,方便不同环境下使用。 PHP 参数绑定的未来发展趋势 参数绑定是一种安全并高效地将用户输入或其他数据传递给 SQL 查询的机制。在 PHP 中,参数绑定主要通过 …

    2025年12月9日
    000
  • PHP 函数通过引用传递参数在不同框架中的使用差异?

    php 函数通过引用传递参数在不同框架中的差异:laravel 和 codeigniter 完全支持。symfony 3.3 及更高版本支持,早期版本不支持。zend framework 3.0 及更高版本支持。 注意仅在需要修改原始值时使用此方法,并检查框架文档以了解具体支持情况。 PHP 函数通…

    2025年12月9日
    000
  • PHP 函数中如何使用返回值进行分页处理?

    php 分页函数通过返回值实现分页:显示当前页数据(使用 $results)。创建页面导航(使用 $total_pages)。控制分页参数(如 $page、$per_page、$total_count)。 PHP 函数中使用返回值进行分页处理 分页是一种在大型数据集上很常见的技术,它将数据分成较小的…

    2025年12月9日
    000
  • 用 PHP 构建 Pokémon API:初学者指南

    在本指南中,我们将逐步完成创建一个基本 php 项目的步骤,该项目将 pokémon api 与 flight 框架以及 zebra_curl 和 latte 等附加包结合使用。我们将探索设置项目、添加路线和渲染视图。 tl;dr:在 flight 中制作一个简单的基于 api 的项目并不难。查看本…

    2025年12月9日
    000
  • PHP 函数参数绑定中错误处理和异常机制?

    php函数参数绑定中的错误处理涉及错误消息获取(使用mysqli_stmt_error()),而异常机制通过mysqli_stmt_set_exception()设置异常处理器,并在错误发生时抛出mysqli_sql_exception异常,可通过try-catch块捕获。 PHP 函数参数绑定中的…

    2025年12月9日
    000
  • 优化大规模 API 数据检索:最佳实践和 PHP 延迟收集解决方案

    当使用 api 检索大量数据(可能是数千个项目)时,需要考虑几个关键方面,以确保流程高效、灵活且高性能。以下是需要管理的关键因素的细分,以及针对 php 用户的解决方案。 通过 api 检索大数据时的关键注意事项 让我分享一些通过 api 高效检索大型数据集的关键注意事项: 处理分页:api 通常在…

    2025年12月9日
    000
  • PHP函数的参数文档如何生成?

    PHP 文档生成:参数文档自动化 自动生成的参数文档对于大型 PHP 项目至关重要。本文将介绍一种使用 phpDocumentor 轻松生成清晰、全面的参数文档的方法。 安装 phpDocumentor composer global require phpdocumentor/phpdocumen…

    2025年12月9日
    000
  • 如何使用 PHP 函数来操作数据库

    使用 PHP 函数操作数据库 PHP 提供了强大的函数库,可以轻松高效地与数据库交互。本文将指导您了解如何使用 PHP 函数执行常见数据库操作,并附有实战案例。 连接数据库 connect_error) { die(“连接失败:” . $conn->connect_error);}?> …

    2025年12月9日
    000
  • 了解 Laravel 中间件:深入探讨 Laravel #s 新方法

    laravel 中间件简介 中间件是现代 web 开发中的一个基本概念,laravel 这个流行的 php 框架广泛使用它来处理 http 请求。无论您是构建简单的 api 还是大型 web 应用程序,了解 laravel 中的中间件都是编写更清晰、更易于管理且高效的代码的关键。 在本文中,我们将深…

    2025年12月9日
    100
  • 在 Mageia 9 上安装 ASDF

    今天我们要在 Mageia 9 上安装 ASDF。接下来的步骤是将插件安装到 PHP 和 Node.js。 要在版本 0.14.1 上安装 ASDF,我使用了 Git + ZSH 版本: #%#$#%@%@%$#%$#%#%#$%@_ba9f11ec++3497d9993b933fdc2bd61e5…

    2025年12月9日
    000
  • 如何编写单元测试来测试 PHP 函数

    使用 phpunit 框架编写单元测试可以验证 php 函数的行为。首先安装 phpunit 并创建继承自 testcase 的测试类。编写以 test 开头的测试方法,并使用断言函数检查函数的输出。最后,使用 vendor/bin/phpunit 命令运行测试。举例来说,可以测试数字相加函数,验证…

    2025年12月9日
    300

发表回复

登录后才能评论
关注微信