a2way / laravel-tenant-migrate
A2Way Laravel Tenant Migrate
v1.11.0
2019-09-11 13:33 UTC
Requires
- laravel/framework: ^5.8 || ^6.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.14
README
A2Way Laravel Tenant Migrate 是一个 Laravel 扩展包,可以用来在不同数据库之间迁移数据,而无需编辑数据库配置文件。
这对于存储每个租户数据在不同数据库中的 SaaS(软件即服务)网络应用来说非常有用。迁移这样的数据库可能会非常困难,因为你可能需要为每个租户数据库更改数据库配置。正如你所想象的,这不是一个可扩展的解决方案。
A2Way Laravel Tenant Migrate 可以帮助你克服这个问题。
财务支持
考虑在 https://www.patreon.com/budhajeewa 上对这个项目进行财务支持。
可用的命令
在 Laravel 项目中安装 A2Way Laravel Tenant Migrate 将向你的 artisan 工具添加以下命令。
migrate:tenant [连接名称] [数据库名称]
migrate:tenant:all [连接名称] [数据库名前缀]
migrate:tenant:install [连接名称] [数据库名称]
migrate:tenant:refresh [连接名称] [数据库名称]
migrate:tenant:reset [连接名称] [数据库名称]
migrate:tenant:rollback [连接名称] [数据库名称]
上述每个命令(除了 migrate:tenant:all
)都将执行与其同名的近亲命令的任务,但替换为“tenant”。例如,migrate:tenant:refresh myConnection myDatabase
将在 myDatabase
上运行 migrate:refresh
,并通过 myConnection
中提供的连接详情访问它。
migrate:tenant:all
通过指定前缀,可以帮助你一次性迁移多个租户数据库。例如,如果你有名为 tnt_a、tnt_b 和 tnt_c 的租户数据库,执行 migrate:tenant:all myConnection tnt_
将迁移所有三个数据库。
安装
- 发出以下命令
composer require a2way/laravel-tenant-migrate ^1.0
- 然后将以下行添加到你的 Laravel 应用程序的
app/config/app.php
文件的providers
子数组中。
A2way\LaravelTenantMigrate\LaravelTenantMigrateServiceProvider::class,
- 通过发出
php artisan
命令来检查安装。如果你能看到上述命令在你的命令列表中,则安装成功。
开发设置
- 拥有 Docker 和 Docker Compose。
- 克隆此仓库。
- 将
tmp.env
文件复制到.env
并填写值。 - 将
laravel/tmp.env
文件复制到.env
并填写值(应用密钥和数据库设置)。 - 运行
docker-compose up
。