对Laravel 开发者来说,主要有两种方式创建数据表,一种是通过 MySQL 客户端工具,比如Sequel Pro(Mac环境下比较流行的MySQL客户端软件),另一种是通过 Laravel 提供的 Artisan 命令生成迁移文件。
如果之前的项目不是通过 Laravel 构建的,现在要迁移到Laravel,或者之前不是通过迁移文件生成的数据表,想要将已存在的数据表转化为 Laravel 迁移文件怎么办,由 Colin Viebrock 为 Sequel Pro 开发的 Laravel迁移导出工具 为我们提供了方便。
我们从github( https://github.com/cviebrock/sequel-pro-laravel-export )将代码克隆本地:
git clone https://github.com/cviebrock/sequel-pro-laravel-export.git
然后进入项目目录,双击 ExportToLaravelMigration.spBundle
文件,接下来在打开的页面连接到数据库,在左侧选中一张数据表,在菜单栏选择 Bundles ? Export ? Export
将数据表导出为迁移文件(或者使用快捷命令 ???M
):
这样就会将选中数据表转化为 Laravel 数据库迁移文件并存放在桌面,比如我选中的是 users
表,对应的迁移文件是 2016_11_20_212052_create_users_table.php
,文件内容如下:
<?php use Illuminate\Support\Facades\Schema; use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Migrations\Migration; /** * Migration auto-generated by Sequel Pro Laravel Export * @see https://github.com/cviebrock/sequel-pro-laravel-export */ class CreateUsersTable extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::create('users', function (Blueprint $table) { $table->increments('id'); $table->string('name', 255); $table->string('email', 255); $table->string('password', 255); $table->rememberToken(); $table->nullableTimestamps(); $table->unique('email', 'users_email_unique'); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists('users'); } }
我们可以将其拷贝到 Laravel 项目的数据库迁移目录,以便后续使用该文件进行后续操作。