通常我們使用 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);
}
小夥伴們都是如何寫資料庫遷移的?歡迎留言討論!
本作品採用《CC 協議》,轉載必須註明作者和本文連結