通常我们使用 laravel 内置的方法这样创建数据库迁移文件
public function up()
{
Schema::create('flights', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('airline');
$table->timestamps();
});
}
其实我经常会使用第三方数据库软件工具 Navicat For Mysql 来设计结构,然后利用软件查看 DDL SQL 语句,直接复制过来用。
所以现在我们也可以这样
public function up()
{
DB::unprepared("CREATE TABLE `st_strongadmin_user` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '管理员id',
`user_name` varchar(50) NOT NULL DEFAULT '' COMMENT '登录名',
`password` varchar(100) DEFAULT NULL COMMENT '登录密码',
`remember_token` varchar(100) DEFAULT NULL COMMENT '记住登录',
`name` varchar(100) DEFAULT '' COMMENT '姓名',
`email` varchar(255) DEFAULT '' COMMENT '邮箱',
`phone` varchar(255) DEFAULT '' COMMENT '手机号',
`avatar` varchar(255) DEFAULT '' COMMENT '头像',
`introduction` varchar(255) DEFAULT '' COMMENT '介绍',
`status` int(1) unsigned NOT NULL DEFAULT '1' COMMENT '状态 1 启用, 2 禁用',
`last_ip` varchar(255) DEFAULT '' COMMENT '最近一次登录ip',
`last_at` datetime DEFAULT NULL COMMENT '最近一次登录时间',
`created_at` datetime DEFAULT NULL COMMENT '添加时间',
`updated_at` datetime DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `uniq_user_name` (`user_name`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=utf8mb4 COMMENT='管理员表';");
}
或者这样
public function up()
{
$file = storage_path('install/sql/strongshop.v1.0.sql');
DB::unprepared($file);
}
小伙伴们都是如何写数据库迁移的?欢迎留言讨论!