通常我们使用 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); | |
} |
小伙伴们都是如何写数据库迁移的?欢迎留言讨论!