Submit Search
べき等データベースマイグレーションツールmigu
0 likes
1,830 views
Naoya Inada
べき等データベースマイグレーションツールmigu
Software
Read more
1 of 22
Download now
Download to read offline
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
More Related Content
PDF
WebSocket / WebRTCの技術紹介
Yasuhiro Mawarimichi
PPTX
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
Atsushi Nakamura
PPTX
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
Hiroshi Ito
PDF
ドメイン駆動設計のための Spring の上手な使い方
増田 亨
PDF
世界最強のソフトウェアアーキテクト
Yahoo!デベロッパーネットワーク
PDF
オンラインゲームの仕組みと工夫
Yuta Imai
PDF
JavaからScala、そしてClojureへ: 実務で活きる関数型プログラミング
Kent Ohashi
PDF
フロー効率性とリソース効率性について #xpjug
Itsuki Kuroda
WebSocket / WebRTCの技術紹介
Yasuhiro Mawarimichi
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
Atsushi Nakamura
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
Hiroshi Ito
ドメイン駆動設計のための Spring の上手な使い方
増田 亨
世界最強のソフトウェアアーキテクト
Yahoo!デベロッパーネットワーク
オンラインゲームの仕組みと工夫
Yuta Imai
JavaからScala、そしてClojureへ: 実務で活きる関数型プログラミング
Kent Ohashi
フロー効率性とリソース効率性について #xpjug
Itsuki Kuroda
What's hot
(20)
PDF
組織にテストを書く文化を根付かせる戦略と戦術
Takuto Wada
PDF
まじめに!できる!LT
Akabane Hiroyuki
PDF
フロー効率性とリソース効率性、再入門 #devlove #devkan
Itsuki Kuroda
PDF
インテルMEの秘密 - チップセットに隠されたコードと、それが一体何をするかを見出す方法 - by イゴール・スコチンスキー - Igor Skochinsky
CODE BLUE
PDF
WebSocketのキホン
You_Kinjoh
PDF
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
Hironobu Isoda
PPTX
ぱぱっと理解するSpring Cloudの基本
kazuki kumagai
PDF
TDD のこころ
Takuto Wada
PDF
社内のマニュアルをSphinxで作ってみた
Iosif Takakura
PPTX
インセプションデッキの紹介
lita
PDF
あなたはPO?PM?PdM?PjM?
大貴 蜂須賀
PDF
WebRTCの技術解説 第二版 公開版 完全版
Contest Ntt-west
PDF
AWSのログ管理ベストプラクティス
Akihiro Kuwano
PDF
【TECH×GAME COLLEGE#32】ゼロからリアルタイムサーバーを作るまで
techgamecollege
PDF
Elasticsearchを使うときの注意点 公開用スライド
崇介 藤井
PDF
「UXデザインとは」からはじめる「本流」のUXデザインはじめの一歩 | UXデザイン基礎セミナー 第1回
Yoshiki Hayama
PPTX
はじめての datadog
Naoya Nakazawa
PDF
Docker入門: コンテナ型仮想化技術の仕組みと使い方
Yuichi Ito
PPTX
initとプロセス再起動
Takashi Takizawa
PPTX
SPAセキュリティ入門~PHP Conference Japan 2021
Hiroshi Tokumaru
組織にテストを書く文化を根付かせる戦略と戦術
Takuto Wada
まじめに!できる!LT
Akabane Hiroyuki
フロー効率性とリソース効率性、再入門 #devlove #devkan
Itsuki Kuroda
インテルMEの秘密 - チップセットに隠されたコードと、それが一体何をするかを見出す方法 - by イゴール・スコチンスキー - Igor Skochinsky
CODE BLUE
WebSocketのキホン
You_Kinjoh
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
Hironobu Isoda
ぱぱっと理解するSpring Cloudの基本
kazuki kumagai
TDD のこころ
Takuto Wada
社内のマニュアルをSphinxで作ってみた
Iosif Takakura
インセプションデッキの紹介
lita
あなたはPO?PM?PdM?PjM?
大貴 蜂須賀
WebRTCの技術解説 第二版 公開版 完全版
Contest Ntt-west
AWSのログ管理ベストプラクティス
Akihiro Kuwano
【TECH×GAME COLLEGE#32】ゼロからリアルタイムサーバーを作るまで
techgamecollege
Elasticsearchを使うときの注意点 公開用スライド
崇介 藤井
「UXデザインとは」からはじめる「本流」のUXデザインはじめの一歩 | UXデザイン基礎セミナー 第1回
Yoshiki Hayama
はじめての datadog
Naoya Nakazawa
Docker入門: コンテナ型仮想化技術の仕組みと使い方
Yuichi Ito
initとプロセス再起動
Takashi Takizawa
SPAセキュリティ入門~PHP Conference Japan 2021
Hiroshi Tokumaru
Ad
More from Naoya Inada
(8)
PDF
Tokyo Otaku Mode での PayPal 活用事例
Naoya Inada
PDF
シンプルなシステム構成フレームワークalnair
Naoya Inada
PDF
kyotovim#1
Naoya Inada
PDF
HTML5-pronama-study
Naoya Inada
PDF
dvcs-kyoto
Naoya Inada
PDF
rucs_vim LT
Naoya Inada
PDF
Python Kyoto study LT
Naoya Inada
PDF
Python Kyoto study
Naoya Inada
Tokyo Otaku Mode での PayPal 活用事例
Naoya Inada
シンプルなシステム構成フレームワークalnair
Naoya Inada
kyotovim#1
Naoya Inada
HTML5-pronama-study
Naoya Inada
dvcs-kyoto
Naoya Inada
rucs_vim LT
Naoya Inada
Python Kyoto study LT
Naoya Inada
Python Kyoto study
Naoya Inada
Ad
べき等データベースマイグレーションツールmigu
1.
べき等データベーススキーマ マイグレーションツール migu mercari.go #15 2020-02-05
2.
自己紹介 ● @naoina (Naoya
Inada) ● Backend engineer at Merpay https://github.com/naoina https://twitter.com/naoina
3.
データベーススキーマのマイグレーションどうやってますか? ● bitbucket.org/liamstask/goose /
pressly/goose ● golang-migrate/migrate ● rubenv/sql-migrate ● 手作業による温かみのあるALTER TABLE
4.
よくあるマイグレーションツール
5.
よくあるマイグレーションツール マイグレーション用ファイルを作成
6.
よくあるマイグレーションツール マイグレーション用の SQLを書く
7.
よくあるマイグレーションツール 適用する
8.
何が問題か? ● 最新に追いつくまでに時間がかかる ○ 最初からひとつひとつマイグレーションしていくため ○
最新のスキーマをダンプしたものを初期化に使ったりして時間を節約する ○ 途中までマイグレーションしていたら? ● 人力でマイグレーション用SQLを書く必要がある ○ バージョン管理があるだけの温かみのある手動 ALTER TABLE ○ 柔軟性はある ○ UP/DOWNを間違いなく書けますか? ● データベースのテーブルでバージョン管理 ○ マイグレーションをどこまで行ったかを管理用テーブルで把握する ○ 実際のテーブルスキーマとバージョン情報の間で不整合が生まれてしまったら? ■ 開発時など頻繁にスキーマを変更するときにめっちゃ面倒・・・
9.
実際のテーブルと手元の環境のスキーマの差分をとって マイグレーション用のSQLを生成すればいいのでは???
10.
naoina/migu
11.
Miguとは ● https://github.com/naoina/migu ● べき等データベーススキーママイグレーションツール ○
何度実行しても結果は同じ ● Go製 ○ コマンドまたはライブラリとして使える ○ mercari.goなので ● MySQL / MariaDB / Cloud Spanner対応 ○ Merpayで使われているデータベースは Cloud Spanner ○ PostgreSQLなどで使いたい人がいればぜひ Pull-Requestをください ● GoのstructからDDLを生成する ○ モデルからスキーマを生成できる ■ スキーマからモデルの生成は cloudspannerecosystem/yo や daichirata/hammer がある ○ 逆も可
12.
Miguをつかったマイグレーション(CLI)
13.
Miguをつかったマイグレーション(CLI) アノテーションをつける
14.
Miguをつかったマイグレーション(CLI) カラムの設定をstruct tagで指定 (ここでは主キーを指定 )
15.
Miguをつかったマイグレーション(CLI) ディレクトリも指定可
16.
Miguをつかったマイグレーション(CLI) 変更がないので2度目は何も起こらない
17.
Miguをつかったマイグレーション(CLI) 型をintからuintに変更
18.
Miguをつかったマイグレーション(CLI) 型をintからuintに変更したことで UNSIGNEDに
19.
Miguをつかったマイグレーション(ライブラリ) GoDoc: https://pkg.go.dev/github.com/naoina/migu
20.
Miguをつかったマイグレーション(ライブラリ) GoDoc: https://pkg.go.dev/github.com/naoina/migu
21.
Miguをつかったマイグレーション ● 最新に追いつくまでに時間がかからない ○ 現在の手元のスキーマとデータベースとの差分からマイグレーション用
SQLを生成するので1回の マイグレーションで済む ● 人力でマイグレーション用SQLを書く必要がない ○ ツールで自動生成 ● データベースのテーブルでバージョン管理しなくていい ○ スキーマがどんな状態であっても差分からマイグレーション用 SQLを生成するのでバージョン管理 不要 ○ 不整合も起きない
22.
まとめ ● べき等(宣言的?)マイグレーションツールというものがある ● そろそろマイグレーションも次のパラダイムに移ってもいいのではないか? ●
べき等はいいぞ ● https://github.com/naoina/migu
Download