久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

Laravel實現數據庫遷移與支持中文的填充

最近在學習Laravel數據庫方面的內容,發現了一些資料不錯整理出來分享給大家,下面這篇文章主要給大家介紹了關于Laravel實現數據庫遷移與支持中文填充的相關資料,文中通過示例代碼

前言

數據庫遷移實際上就是對數據庫庫表的結構變化做版本控制,之前對數據庫庫表結構做修改的方式比較原始,比如說對某張庫表新增了一個字段,都是直接在庫表中執行alter table xxx add .. 的方式直接修改,但是這么做有些弊端,比如在開發階段,你自己的庫表修改了,還要把這句sql語句傳給別人再執行一遍,這在多人協同開發時不是一種好的方式.那有沒有一種方式能讓我們對數據庫 庫表的修改做一些簡單的版本控制,同時能讓其他人很方便的同步我們對數據庫的修改呢?

答案是我們可以使用Laravel 內置的Migrations .

對數據庫的管理包括哪些部分?

其實Laravel對數據庫的版本管理主要包括兩部門: 數據庫結構的管理 和數據的管理.

  • 數據庫結構的管理: 主要是對數據庫結構進行管理,比如新增了一張表,某張表增加了一個字段等等.
  • 數據的管理: 這個主要是管理表中的數據,生成一些填充數據,解決我們開發調試時沒有測試數據的問題.

經常我們做項目都團隊協作開發,每個人都在自己本地的數據庫,如果你曾經出現過讓同事手動在數據庫結構中添加字段的情況,數據庫遷移可以解決你這個問題。

不僅如此,在線上部署的時候,也避免了手動導入數據庫或手動修改數據結構的麻煩,數據遷移幫你方便的維護著數據結構。

數據填充,讓我們測試的時候需要大量的假數據不再一條一條的去造數據,可以輕松的批量填充大量數據。

本文基于Laravel5.5,其他版本大同小異。

數據遷移

假如我們需要一張學生表,我們不再使用原生SQl語句去創建表。

創建遷移文件

前提是已經配置好了數據庫連接信息

php artisan make:migration create_students_table

此命令會在database/migrations/目錄生成類似2017_10_28_035802_create_students_table.php的文件

我們在里邊添加students表的數據結構

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class CreateStudentsTable extends Migration
{
 /**
 * Run the migrations.
 *
 * @return void
 */
 public function up()
 {
 // students為表名稱
 Schema::create('students', function (Blueprint $table) {
  // 存儲引擎
  $table->engine = 'InnoDB';
  // id自增
  $table->increments('id');
  // 學生名稱
  $table->string('name');
  // 性別
  $table->string('sex');
  // 郵箱
  $table->string('email');
  // 喜愛的顏色
  $table->string('favorite_color');
  // 手機號
  $table->string('phone');
  // 地址
  $table->string('addr');
  // 自動維護時間戳
  $table->timestamps();
 });
 }

 /**
 * Reverse the migrations.
 *
 * @return void
 */
 public function down()
 {
 Schema::dropIfExists('students');
 }
}

更多用法,請參考官方手冊。

運行遷移

php artisan migrate

這樣會運行database/migrations/目錄的所有遷移文件,并自動創建migrations表,來記錄已經運行過的遷移文件,防止重復運行。

我們看一下數據庫是不是自動創建了students表了呢。

如果出現以下錯誤:

[Illuminate\Database\QueryException]
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was t
oo long; max key length is 767 bytes (SQL: alter table users add unique users_email_unique(email))

[PDOException]
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was t
oo long; max key length is 767 bytes

在database/migrations/目錄里會有laravel自帶的用戶和重置密碼的兩個遷移文件,會一并運行。
在這里我們這樣解決,修改數據庫配置文件config/database.php里的mysql下的字符集為utf8即可

'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',

想知道為什么,可猛戳:http://www.jb51.net/article/127319.htm

數據填充(支持中文)

創建學生表Eloquent模型

在app目錄下創建Student.php

<?php
namespace App;

use Illuminate\Database\Eloquent\Model;

/**
 * 學生模型
 */
class Student extends Model
{
 
}

創建填充文件

php artisan make:seed StudentsTableSeeder
【網站聲明】本站除付費源碼經過測試外,其他素材未做測試,不保證完整性,網站上部分源碼僅限學習交流,請勿用于商業用途。如損害你的權益請聯系客服QQ:2655101040 給予處理,謝謝支持。

相關文檔推薦

下面小編就為大家分享一篇laravel ORM 只開啟created_at的幾種方法總結,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
這篇文章主要給大家介紹了如何通過源碼解析Laravel的依賴注入的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著
這篇文章主要給大家介紹了關于Laravel中unique和exists驗證規則的優化的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面
最近在使用laravel5.5,利用其實現了一個功能,下面分享給大家,這篇文章主要給大家介紹了關于Laravel 5.5基于內置的Auth模塊如何實現前后臺登陸的相關資料,文中通過示例代碼介紹的非
laravel 的隊列服務對各種不同的后臺隊列服務提供了統一的 API,下面這篇文章通過源碼分析給大家介紹了關于 Laravel 重復執行同一個隊列任務的原因,文中通過示例代碼介紹的非常詳細
這篇文章主要給大家介紹了關于 Laravel Redis 多個進程同時取隊列問題的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或工作具有一定的參考學習價值,需要的朋友下面來
主站蜘蛛池模板: 国产一级视频在线播放 | 久久成人精品 | 成人日韩| 涩色视频在线观看 | 一区二区国产在线观看 | 亚洲精品视频在线看 | 色精品| 91精品国产一区二区三区香蕉 | 免费视频一区二区 | 亚洲精品一区在线 | 国产97在线看 | 午夜在线观看视频 | 99这里只有精品视频 | 日韩av视屏| 国产视频精品在线 | 欧美4p| 久久99视频精品 | 亚洲一区二区三区视频 | 全部免费毛片在线播放网站 | 中文字幕91av | 视频一二三区 | 四虎影院欧美 | 久久国产精品色av免费观看 | 一本久久a久久精品亚洲 | 人人鲁人人莫人人爱精品 | 国产亚洲一区二区三区 | 黄色网址在线播放 | 国产精品免费一区二区三区四区 | 成人av免费看| 亚洲欧美中文字幕在线观看 | 激情影院久久 | 免费在线视频精品 | 国产精品久久久久久久久久久久冷 | 成人国产午夜在线观看 | 国产高清视频一区 | 在线免费观看视频你懂的 | 亚洲精品一区在线 | 国产欧美精品一区二区三区 | 欧美亚洲国产日韩 | 国产精品不卡视频 | 国产精品成人一区 |