在 Day 26 我介紹了 GPT Data Generator
可以幫我們產出假資料,以便後續可以做 Load testing。
今天我們來玩另一個可以幫我們在 GitLab Server 上產出假資料的工具——GitLab Data Seeder
。
雖然 GPT Data Generator
可以快速的用前綴字 + 流水號的方式幫我們產出假資料。但如果你想要更多客製化、更像是真人在使用 GitLab 的假資料,那也許今天介紹的 GitLab Data Seeder
。
一樣,我們直接進操作步驟
cd /opt/gitlab/embedded/service/gitlab-rails
# Install test resources
. scripts/data_seeder/test_resources.sh
# Globalize gems
/opt/gitlab/embedded/bin/chpst -e /opt/gitlab/etc/gitlab-rails/env /opt/gitlab/embedded/bin/bundle exec ruby scripts/data_seeder/globalize_gems.rb
# Install bundle
/opt/gitlab/embedded/bin/chpst -e /opt/gitlab/etc/gitlab-rails/env /opt/gitlab/embedded/bin/bundle
gitlab-rake "ee:gitlab:seed:data_seeder[beautiful_data.rb]"
啪,就這樣結束了(誒誒誒誒!?)
是的喔,就這樣結束了,上面第 5 步做完,就可以前往你的 GitLab UI 查看產出的假資料了。但如果你真的去查看,你會發現 Data Seeder 只幫你建了一個名為 beautiful_data
的 Group,可是裡面一點內容都沒有。
其實這並非是 Data Seeder 這工具沒用處,而是我們上面選擇的 Seeder [beautiful_data.rb]
它本來就設定只做這麼一點事情。我們把這個 Seeder file 打開來看,會發現裡面只有如下短短的內容
因此實際上,它真正做的事情是幫我們建立一個 Group,然後為這個 Group 建立四個 Group Label
。
讓我們稍微修改它一下,再跑一次。我先將 beautiful_data.rb
複製一份,改檔名為 hero_data.rb
,然後修改內容讓它再多建幾個 Group Label
。
## 複製檔案
cp /opt/gitlab/embedded/service/gitlab-rails/ee/db/seeds/data_seeder/beautiful_data.rb /opt/gitlab/embedded/service/gitlab-rails/ee/db/seeds/data_seeder/hero_data.rb
## 修改 hero_data.rb 加上更多的內容
class DataSeeder
def seed
create(:group_label, group: @group, title: 'priority::1', color: '#FF0000')
create(:group_label, group: @group, title: 'priority::2', color: '#DD0000')
create(:group_label, group: @group, title: 'priority::3', color: '#CC0000')
create(:group_label, group: @group, title: 'priority::4', color: '#CC1111')
create(:group_label, group: @group, title: 'hero::1', color: '#114FCC')
create(:group_label, group: @group, title: 'hero::2', color: '#093B06')
create(:group_label, group: @group, title: 'hero::3', color: '#9C1795')
create(:group_label, group: @group, title: 'hero::4', color: '#636312')
end
end
再次執行 Data Seeder,這次指定用我做好的 hero_data.rb
。
gitlab-rake "ee:gitlab:seed:data_seeder[hero_data.rb]"
噹噹!我得到了第二個 Group。
而且如我預期的,總共有 8 個 Group Label。
做到這裡,想必大家應該已經理解 GitLab Data Seeder
葫蘆裡在賣什麼藥了吧?
是的,就如其他程式語言常見的 Data Seeder,你可以透過寫 Code 的方式去定義你要產出什麼樣的假資料,然後執行程式即可將假資料按著你的規劃,塞進你的 GitLab。
因此你的 Seeder 撰寫的內容有多豐富,你就能塞進多豐富的假資料!所以剩下的就是苦工了,請詳閱原廠文件,撰寫自己所需的 Seeder file 吧。
圖片來源 - 吉卜力工作室 https://www.ghibli.jp/works/tanuki/#&gid=1&pid=18