californiamountainsnake / laravel-migrations
此包已被弃用且不再维护。未建议替代包。
在Laravel中,使用不同的迁移类处理不同的数据库连接。
2.0.0
2021-04-28 13:58 UTC
Requires
- php: ^7.2
- ext-pdo: *
- illuminate/database: *
Requires (Dev)
- ext-dom: *
- phpunit/phpunit: ^7.0
This package is auto-updated.
Last update: 2022-05-28 16:36:40 UTC
README
在Laravel中,使用不同的迁移类处理不同的数据库连接。使用这个库,你可以轻松指定每个迁移将在哪个数据库连接上执行。
安装
使用Composer安装此包
通过Composer安装此包。编辑你的项目composer.json
文件,以添加californiamountainsnake/laravel-migrations
依赖。
{ "name": "yourproject/yourproject", "type": "project", "require": { "php": "^7.2", "californiamountainsnake/laravel-migrations": "*" } }
并运行composer update
或者
在你的命令行中运行此命令
composer require californiamountainsnake/laravel-migrations
用法
- 在
config/database.php
文件中创建一些连接。 - 为每个需要的连接创建一个迁移类
<?php use CaliforniaMountainSnake\LaravelMigrations\BaseMigration; use Illuminate\Database\Schema\Builder; use Illuminate\Support\Facades\Schema; class DatabaseOneMigration extends BaseMigration { /** * @return Builder */ public function getDatabaseConnection() : Builder { return Schema::connection('your_db_connection_name'); } }
- 像往常一样通过Artisan创建迁移。
- 从你的迁移类之一扩展这个迁移类,而不是使用
Illuminate\Database\Migrations\Migration
。你也可以使用内置类CaliforniaMountainSnake\LaravelMigrations\DefaultMigration
作为默认数据库连接。 - 编写你的迁移!
<?php use Illuminate\Database\Schema\Blueprint; class CreateUsersTable extends DatabaseOneMigration { /** * Run the migrations. * * @return void */ public function up(): void { $this->getDatabaseConnection()->create('users', static function (Blueprint $table) { $table->bigIncrements('id')->unsigned(); $table->string('email', 256)->unique(); $table->string('name', 256); $table->engine = 'InnoDB'; $table->charset = 'utf8mb4'; $table->collation = 'utf8mb4_unicode_520_ci'; }); } /** * Reverse the migrations. * * @return void */ public function down(): void { $this->getDatabaseConnection()->dropIfExists('users'); } }