SlideShare ist ein Scribd-Unternehmen logo
1 von 18
Downloaden Sie, um offline zu lesen
GMO Pepabo, Inc.
Joe Honzawa
2015/08/25 Shibuya.ex
DBにseedする
ライブラリつくった
自己紹介
> ほんざわ じょう
@Joe_noh
Joe-noh
> GMOペパボの1年目
DBに初期データを
投入したい
hex.pmで検索
exseed
Inspired largely by seed-fu
priv/repo/seeds/posts.exs
import Exseed
seed MyApp.Post do
id 1
title "First"
body "Hey."
end
seed MyApp.Post do
...
end $ mix exseed.seed
priv/repo/seeds/posts.exs
import Exseed
seed MyApp.Post do
id 1
title "First"
body "Hey."
end
seed MyApp.Post do
...
end
毎回書くのダルい
priv/repo/seeds/posts.exs
import Exseed
seed MyApp.Post do
id 1
title "First"
body "Hey."
end
seed MyApp.Post do
...
end
縦に伸びて行数を食う
}
Repoはconfig.exsで設定
use Mix.Config
config :exseed, :repo, MyApp.Repo
複数Repo使えない?
priv/repo/seeds/posts.exs
import Exseed
seed MyApp.Post do
id 1
title "First"
body "Hey."
end
Rubyっぽすぎるのでは?
うーむ
つくろう
要件と願望
> モデル名とかの繰り返しは避けたい
> 1行1属性縛りは避けたい
> 複数Repo使えるようにしたい
> Elixirらしく書きたい
> パイプをつなげたい
tane
https://github.com/
Joe-noh/tane
priv/repo/seeds.exs
use Tane
repo(MyApp.Repo)
|> model(MyApp.User)
|> seed(name: "bob", age: 25)
|> model(MyApp.Post)
|> seed(title: "First", body: "Hey.")
|> seed(title: "Second", body: "Hi.")
$ mix tane
priv/repo/seeds.exs
use Tane
repo(MyApp.Repo)
|> model(MyApp.User)
|> delete_all!
|> seed(:bob, name: "bob", age: 25)
|> model(MyApp.Post)
|> seed(title: "First", body: "Hey.",
user_id: registered(:bob).id)
https://github.com/
Joe-noh/tane

Weitere ähnliche Inhalte

Andere mochten auch

つくること = 生きること : パターン・ランゲージによる創造の支援
つくること = 生きること : パターン・ランゲージによる創造の支援 つくること = 生きること : パターン・ランゲージによる創造の支援
つくること = 生きること : パターン・ランゲージによる創造の支援 Takashi Iba
 
Shibuya.ex #1 Elixirを本番環境で使ってみたという事例紹介
Shibuya.ex #1 Elixirを本番環境で使ってみたという事例紹介Shibuya.ex #1 Elixirを本番環境で使ってみたという事例紹介
Shibuya.ex #1 Elixirを本番環境で使ってみたという事例紹介Tsunenori Oohara
 
Fighting API Compatibility On Fluentd Using "Black Magic"
Fighting API Compatibility On Fluentd Using "Black Magic"Fighting API Compatibility On Fluentd Using "Black Magic"
Fighting API Compatibility On Fluentd Using "Black Magic"SATOSHI TAGOMORI
 
Zabbixとjob scheduler連携による運用システムoss化の実現
Zabbixとjob scheduler連携による運用システムoss化の実現Zabbixとjob scheduler連携による運用システムoss化の実現
Zabbixとjob scheduler連携による運用システムoss化の実現Daisuke Ikeda
 
文字コードの脆弱性はこの3年間でどの程度対策されたか?
文字コードの脆弱性はこの3年間でどの程度対策されたか?文字コードの脆弱性はこの3年間でどの程度対策されたか?
文字コードの脆弱性はこの3年間でどの程度対策されたか?Hiroshi Tokumaru
 
はてなにおける Android アプリのソフトウェアテスト
はてなにおける Android アプリのソフトウェアテストはてなにおける Android アプリのソフトウェアテスト
はてなにおける Android アプリのソフトウェアテストYu Nobuoka
 
Devsの常識、DBAは非常識
Devsの常識、DBAは非常識Devsの常識、DBAは非常識
Devsの常識、DBAは非常識yoku0825
 
AWS Lambdaによるデータ処理理の⾃自動化とコモディティ化
AWS Lambdaによるデータ処理理の⾃自動化とコモディティ化AWS Lambdaによるデータ処理理の⾃自動化とコモディティ化
AWS Lambdaによるデータ処理理の⾃自動化とコモディティ化Amazon Web Services Japan
 
アジャイル×テスト開発を考える
アジャイル×テスト開発を考えるアジャイル×テスト開発を考える
アジャイル×テスト開発を考えるyasuohosotani
 
iBeacon を利用したサービス開発のポイント
iBeacon を利用したサービス開発のポイントiBeacon を利用したサービス開発のポイント
iBeacon を利用したサービス開発のポイントdaisuke-a-matsui
 
外部データラッパによる PostgreSQL の拡張
外部データラッパによる PostgreSQL の拡張外部データラッパによる PostgreSQL の拡張
外部データラッパによる PostgreSQL の拡張Shigeru Hanada
 
ふつうの受託開発チームのつくりかた
ふつうの受託開発チームのつくりかたふつうの受託開発チームのつくりかた
ふつうの受託開発チームのつくりかたYoshitaka Kawashima
 
例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪Takuto Wada
 
ビジュアル構文解析
ビジュアル構文解析ビジュアル構文解析
ビジュアル構文解析ichikaz3
 
JobSchedulerでCD(継続的デリバリ)
JobSchedulerでCD(継続的デリバリ)JobSchedulerでCD(継続的デリバリ)
JobSchedulerでCD(継続的デリバリ)OSSラボ株式会社
 
Selenium Antipatterns
Selenium AntipatternsSelenium Antipatterns
Selenium AntipatternsJumpei Miyata
 
10年続いているwebサービスの画像サーバをノーメンテでftpサーバからs3互換のストレージサーバに移行している話
10年続いているwebサービスの画像サーバをノーメンテでftpサーバからs3互換のストレージサーバに移行している話 10年続いているwebサービスの画像サーバをノーメンテでftpサーバからs3互換のストレージサーバに移行している話
10年続いているwebサービスの画像サーバをノーメンテでftpサーバからs3互換のストレージサーバに移行している話 Masataka Kono
 
DB設計でこだわりたい三つの要素
DB設計でこだわりたい三つの要素DB設計でこだわりたい三つの要素
DB設計でこだわりたい三つの要素Takahiro YAMADA
 

Andere mochten auch (20)

つくること = 生きること : パターン・ランゲージによる創造の支援
つくること = 生きること : パターン・ランゲージによる創造の支援 つくること = 生きること : パターン・ランゲージによる創造の支援
つくること = 生きること : パターン・ランゲージによる創造の支援
 
Shibuya.ex #1 Elixirを本番環境で使ってみたという事例紹介
Shibuya.ex #1 Elixirを本番環境で使ってみたという事例紹介Shibuya.ex #1 Elixirを本番環境で使ってみたという事例紹介
Shibuya.ex #1 Elixirを本番環境で使ってみたという事例紹介
 
Fighting API Compatibility On Fluentd Using "Black Magic"
Fighting API Compatibility On Fluentd Using "Black Magic"Fighting API Compatibility On Fluentd Using "Black Magic"
Fighting API Compatibility On Fluentd Using "Black Magic"
 
Zabbixとjob scheduler連携による運用システムoss化の実現
Zabbixとjob scheduler連携による運用システムoss化の実現Zabbixとjob scheduler連携による運用システムoss化の実現
Zabbixとjob scheduler連携による運用システムoss化の実現
 
文字コードの脆弱性はこの3年間でどの程度対策されたか?
文字コードの脆弱性はこの3年間でどの程度対策されたか?文字コードの脆弱性はこの3年間でどの程度対策されたか?
文字コードの脆弱性はこの3年間でどの程度対策されたか?
 
はてなにおける Android アプリのソフトウェアテスト
はてなにおける Android アプリのソフトウェアテストはてなにおける Android アプリのソフトウェアテスト
はてなにおける Android アプリのソフトウェアテスト
 
Devsの常識、DBAは非常識
Devsの常識、DBAは非常識Devsの常識、DBAは非常識
Devsの常識、DBAは非常識
 
AWS Lambdaによるデータ処理理の⾃自動化とコモディティ化
AWS Lambdaによるデータ処理理の⾃自動化とコモディティ化AWS Lambdaによるデータ処理理の⾃自動化とコモディティ化
AWS Lambdaによるデータ処理理の⾃自動化とコモディティ化
 
アジャイル×テスト開発を考える
アジャイル×テスト開発を考えるアジャイル×テスト開発を考える
アジャイル×テスト開発を考える
 
iBeacon を利用したサービス開発のポイント
iBeacon を利用したサービス開発のポイントiBeacon を利用したサービス開発のポイント
iBeacon を利用したサービス開発のポイント
 
外部データラッパによる PostgreSQL の拡張
外部データラッパによる PostgreSQL の拡張外部データラッパによる PostgreSQL の拡張
外部データラッパによる PostgreSQL の拡張
 
ふつうの受託開発チームのつくりかた
ふつうの受託開発チームのつくりかたふつうの受託開発チームのつくりかた
ふつうの受託開発チームのつくりかた
 
個人開発と徳
個人開発と徳個人開発と徳
個人開発と徳
 
例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪
 
ビジュアル構文解析
ビジュアル構文解析ビジュアル構文解析
ビジュアル構文解析
 
JobSchedulerでCD(継続的デリバリ)
JobSchedulerでCD(継続的デリバリ)JobSchedulerでCD(継続的デリバリ)
JobSchedulerでCD(継続的デリバリ)
 
Selenium Antipatterns
Selenium AntipatternsSelenium Antipatterns
Selenium Antipatterns
 
Google Cloud Dataflow を理解する - #bq_sushi
Google Cloud Dataflow を理解する - #bq_sushiGoogle Cloud Dataflow を理解する - #bq_sushi
Google Cloud Dataflow を理解する - #bq_sushi
 
10年続いているwebサービスの画像サーバをノーメンテでftpサーバからs3互換のストレージサーバに移行している話
10年続いているwebサービスの画像サーバをノーメンテでftpサーバからs3互換のストレージサーバに移行している話 10年続いているwebサービスの画像サーバをノーメンテでftpサーバからs3互換のストレージサーバに移行している話
10年続いているwebサービスの画像サーバをノーメンテでftpサーバからs3互換のストレージサーバに移行している話
 
DB設計でこだわりたい三つの要素
DB設計でこだわりたい三つの要素DB設計でこだわりたい三つの要素
DB設計でこだわりたい三つの要素
 

Mehr von Joe_noh

パフォーマンス改善のためにやったこと・やらなかったこと
パフォーマンス改善のためにやったこと・やらなかったことパフォーマンス改善のためにやったこと・やらなかったこと
パフォーマンス改善のためにやったこと・やらなかったことJoe_noh
 
Vue.jsのユニットテスト
Vue.jsのユニットテストVue.jsのユニットテスト
Vue.jsのユニットテストJoe_noh
 
Vuexと入力フォーム
Vuexと入力フォームVuexと入力フォーム
Vuexと入力フォームJoe_noh
 
カラーミーAPIドキュメントの今後
カラーミーAPIドキュメントの今後カラーミーAPIドキュメントの今後
カラーミーAPIドキュメントの今後Joe_noh
 
サイクルOJTイントロダクション
サイクルOJTイントロダクションサイクルOJTイントロダクション
サイクルOJTイントロダクションJoe_noh
 
お産ウィークイントロダクション
お産ウィークイントロダクションお産ウィークイントロダクション
お産ウィークイントロダクションJoe_noh
 
モバイルアプリ研修イントロダクション
モバイルアプリ研修イントロダクションモバイルアプリ研修イントロダクション
モバイルアプリ研修イントロダクションJoe_noh
 
Webオペレーション研修イントロダクション
Webオペレーション研修イントロダクションWebオペレーション研修イントロダクション
Webオペレーション研修イントロダクションJoe_noh
 
Web開発研修イントロダクション
Web開発研修イントロダクションWeb開発研修イントロダクション
Web開発研修イントロダクションJoe_noh
 
リーンキャンバス
リーンキャンバスリーンキャンバス
リーンキャンバスJoe_noh
 
もっとgit
もっとgitもっとgit
もっとgitJoe_noh
 
できないことはPortで外注
できないことはPortで外注できないことはPortで外注
できないことはPortで外注Joe_noh
 
やってみた -URL外形監視-
やってみた -URL外形監視-やってみた -URL外形監視-
やってみた -URL外形監視-Joe_noh
 
Elixirだ 第6回
Elixirだ 第6回Elixirだ 第6回
Elixirだ 第6回Joe_noh
 
Elixirだ 第5回
Elixirだ 第5回Elixirだ 第5回
Elixirだ 第5回Joe_noh
 
Elixirだ 第4回
Elixirだ 第4回Elixirだ 第4回
Elixirだ 第4回Joe_noh
 
Elixirだ 第3回
Elixirだ 第3回Elixirだ 第3回
Elixirだ 第3回Joe_noh
 
Elixirだ 第2回
Elixirだ 第2回Elixirだ 第2回
Elixirだ 第2回Joe_noh
 
Elixirだ 第1回強化版 後半
Elixirだ 第1回強化版 後半Elixirだ 第1回強化版 後半
Elixirだ 第1回強化版 後半Joe_noh
 
Elixirだ 第1回強化版 前半
Elixirだ 第1回強化版 前半Elixirだ 第1回強化版 前半
Elixirだ 第1回強化版 前半Joe_noh
 

Mehr von Joe_noh (20)

パフォーマンス改善のためにやったこと・やらなかったこと
パフォーマンス改善のためにやったこと・やらなかったことパフォーマンス改善のためにやったこと・やらなかったこと
パフォーマンス改善のためにやったこと・やらなかったこと
 
Vue.jsのユニットテスト
Vue.jsのユニットテストVue.jsのユニットテスト
Vue.jsのユニットテスト
 
Vuexと入力フォーム
Vuexと入力フォームVuexと入力フォーム
Vuexと入力フォーム
 
カラーミーAPIドキュメントの今後
カラーミーAPIドキュメントの今後カラーミーAPIドキュメントの今後
カラーミーAPIドキュメントの今後
 
サイクルOJTイントロダクション
サイクルOJTイントロダクションサイクルOJTイントロダクション
サイクルOJTイントロダクション
 
お産ウィークイントロダクション
お産ウィークイントロダクションお産ウィークイントロダクション
お産ウィークイントロダクション
 
モバイルアプリ研修イントロダクション
モバイルアプリ研修イントロダクションモバイルアプリ研修イントロダクション
モバイルアプリ研修イントロダクション
 
Webオペレーション研修イントロダクション
Webオペレーション研修イントロダクションWebオペレーション研修イントロダクション
Webオペレーション研修イントロダクション
 
Web開発研修イントロダクション
Web開発研修イントロダクションWeb開発研修イントロダクション
Web開発研修イントロダクション
 
リーンキャンバス
リーンキャンバスリーンキャンバス
リーンキャンバス
 
もっとgit
もっとgitもっとgit
もっとgit
 
できないことはPortで外注
できないことはPortで外注できないことはPortで外注
できないことはPortで外注
 
やってみた -URL外形監視-
やってみた -URL外形監視-やってみた -URL外形監視-
やってみた -URL外形監視-
 
Elixirだ 第6回
Elixirだ 第6回Elixirだ 第6回
Elixirだ 第6回
 
Elixirだ 第5回
Elixirだ 第5回Elixirだ 第5回
Elixirだ 第5回
 
Elixirだ 第4回
Elixirだ 第4回Elixirだ 第4回
Elixirだ 第4回
 
Elixirだ 第3回
Elixirだ 第3回Elixirだ 第3回
Elixirだ 第3回
 
Elixirだ 第2回
Elixirだ 第2回Elixirだ 第2回
Elixirだ 第2回
 
Elixirだ 第1回強化版 後半
Elixirだ 第1回強化版 後半Elixirだ 第1回強化版 後半
Elixirだ 第1回強化版 後半
 
Elixirだ 第1回強化版 前半
Elixirだ 第1回強化版 前半Elixirだ 第1回強化版 前半
Elixirだ 第1回強化版 前半
 

Kürzlich hochgeladen

論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 

Kürzlich hochgeladen (10)

論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 

DBにseedするライブラリつくった