Laravel 在特定文件夹中创建迁移文件

问题描述 投票:0回答:5

我已经为我的 laravel 项目创建了付款包

我想在我的包的迁移文件夹中创建迁移文件。如何使用 artisan 命令创建它? 我想要类似的东西

php artisan make:migration packages/Payment/src/Database/add_orderId_to_cart_payment_table
laravel laravel-5 migration laravel-artisan
5个回答
40
投票

在根文件夹上使用此命令:

创建唯一的迁移文件:

php artisan make:migration create_products_table --create=products

创建迁移,模型文件:

php artisan make:model Product -m

对于创建迁移、模型、控制器文件:

php artisan make:model Product -mcr

如果您想手动执行此操作,则可以根据您的文件夹要求设置

--path

php artisan make:migration filename --path=/app/database/migrations/relations
php artisan make:migration filename --path=/app/database/migrations/translations

如果您想迁移:

php artisan migrate --path="/app/database/migrations/relations"

8
投票

对于特定目录:

php artisan make:migration create_users_table --path=/packages/Payment/src/Database

新迁移将放置在您的

packages/Payment/src/Database
目录中。

对于运行迁移:

php artisan migrate --path=/packages/Payment/src/Database


使用内置框架功能生成迁移:

php artisan make:migration create_users_table

新迁移将放置在您的

database/migrations
目录中。

对于运行迁移:

php artisan migrate


3
投票

您需要将它们从您的包发布到您的迁移文件夹,就像在您的包服务提供程序启动方法中一样:

  $this->publishes([
        __DIR__.'/Database/migrations/' => database_path('migrations'),
    ], 'migrations');

运行此命令

php artisan vendor:publish --tag=migrations

之后你就可以运行了

php artisan migrate


1
投票

你可以运行:

php artisan make:migration --help
并查看所有可供您使用的选项。


1
投票

看起来您正在创建一个包,并且想知道如何处理数据库迁移。执行此操作的一种方法是使用

php artisan make:migration
命令以通常的方式创建迁移,然后运行迁移以创建必要的表和结构。

创建并运行迁移后,您可以将它们放入包中,方法是将它们放在包的

src/Database/migrations
目录中。这将允许在安装包并运行 php artisan migrate 命令时加载并运行迁移。

为了确保迁移正确加载并运行,您需要在包服务提供商的

boot()
方法中包含以下行:

$this->loadMigrationsFrom(__DIR__ . '/Database/migrations');

这将告诉 Laravel 从包的 src/Database/migrations 目录加载迁移。

需要注意的是

loadMigrationsFrom()
方法是 Laravel 的内置功能,无论迁移是位于用户的
Database/migrations
目录中还是位于包的
src/Database/migrations
目录中,它都允许运行迁移。这将确保在安装软件包并运行 php artisan migrate 命令时正确运行迁移。

© www.soinside.com 2019 - 2024. All rights reserved.