MySQL 資料庫 - 種子資料的建立

學習Blog
4 min readSep 3, 2020

--

前一篇文章中建立好MySQL資料庫後,如果想要在資料庫中輸入一些預設資料,則需要建立種子資料,在終端中執行下列指令產生種子資料:

npx sequelize seed:generate --name 種子資料名稱// 官方範例
npx sequelize-cli seed:generate --name demo-user
資料會在npx init產生的seed資料夾中出現
一開始種子資料內的設定

種子資料內的設定跟migration內容很相似,同樣有up負責增加、down移除種子資料的內容。

種子資料的增加設定

在migration中表格的創立是使用queryInterface來執行,種子資料的部分也是;種子資料創造的指令是bulkInsert,相關的指令可以看官方文件

一般來說只需要設定tableName、records這兩個參數就好,tableName如字面上所示是表格名稱,records則是要貯存的資料,是一連串物件組成的陣列

Record的建立方式:

建立資料的最基本作法就是直接寫入物件中,直接放到bulkInsert中

官方範例

也可以獨立成json檔案出來,在輸入資料時引用

物件資料 json形式

或是使用JS中陣列的方法Map,設定額外的資料

如果需要設定資料數量,可以使用Array.from

Array.from有map方法可以使用

這邊使用length來指定物件的數量,同時使用map方法配合箭頭函示來設定物件資料

MDM箭頭函式說明

Record使用到的工具:

  1. 密碼雜湊:如果要記錄使用者資料等隱密資訊,例如使用者密碼,可以使用bcrypt

2. 假資料:需要需多假資料時,faker非常好用,大部分的假資料設定都可以使用

3. 隨機圖片:需要隨機圖片時,可以使用LoremFlickrLorem Picsum 等網站,裡面提供很多種隨機圖片,而且也能指定大小

種子資料的移除設定

移除時,則需要使用queryInterface的bulkDelete

比較特別一點的是,如果不停加入、移除種子資料,資料的index會一直增加,而不是從0開始,這時候只要把bulkDelete的option中truncate、restartIdentity這兩個值設為true即可

種子資料存入MySQL資料庫

設定完上列設定時,千萬別忘記執行sequelize-cli指令,將種子資料存入資料庫:

// 將所有種子資料存入資料庫
npx sequelize db:seed:all

// 將所有種子資料移除資料庫
npx sequelize db:seed:undo:all

到這邊種子資料就建立完成,輸入完畢啦。

--

--

學習Blog
學習Blog

No responses yet