Submit Search
Upload
べき等データベースマイグレーションツールmigu
•
0 likes
•
1,784 views
Naoya Inada
Follow
べき等データベースマイグレーションツールmigu
Read less
Read more
Software
Report
Share
Report
Share
1 of 22
Download now
Download to read offline
Recommended
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!
Tetsutaro Watanabe
A5 SQL Mk-2の便利な機能をお教えします
A5 SQL Mk-2の便利な機能をお教えします
ester41
インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門
Akihiro Kuwano
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
Yoshitaka Kawashima
Web エンジニアが postgre sql を選ぶ 3 つの理由
Web エンジニアが postgre sql を選ぶ 3 つの理由
Soudai Sone
CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善
CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善
Ito Takayuki
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
NTT DATA OSS Professional Services
Recommended
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!
Tetsutaro Watanabe
A5 SQL Mk-2の便利な機能をお教えします
A5 SQL Mk-2の便利な機能をお教えします
ester41
インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門
Akihiro Kuwano
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
Yoshitaka Kawashima
Web エンジニアが postgre sql を選ぶ 3 つの理由
Web エンジニアが postgre sql を選ぶ 3 つの理由
Soudai Sone
CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善
CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善
Ito Takayuki
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
NTT DATA OSS Professional Services
大規模Redisサーバ縮小化の戦い
大規模Redisサーバ縮小化の戦い
Yuto Komai
PostgreSQLでスケールアウト
PostgreSQLでスケールアウト
Masahiko Sawada
PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説
Masahiko Sawada
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
onozaty
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
NTT DATA Technology & Innovation
フロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjug
Itsuki Kuroda
押さえておきたい、PostgreSQL 13 の新機能!! (PostgreSQL Conference Japan 2020講演資料)
押さえておきたい、PostgreSQL 13 の新機能!! (PostgreSQL Conference Japan 2020講演資料)
NTT DATA Technology & Innovation
ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門
増田 亨
AmebaのMongoDB活用事例
AmebaのMongoDB活用事例
Akihiro Kuwano
ドメイン駆動設計に15年取り組んでわかったこと
ドメイン駆動設計に15年取り組んでわかったこと
増田 亨
アジャイルコーチから見たScaled Agile Method LeSS版
アジャイルコーチから見たScaled Agile Method LeSS版
Takao Kimura
PostgreSQLアンチパターン
PostgreSQLアンチパターン
Soudai Sone
MongoDBの監視
MongoDBの監視
Tetsutaro Watanabe
Apache Sparkの基本と最新バージョン3.2のアップデート(Open Source Conference 2021 Online/Fukuoka ...
Apache Sparkの基本と最新バージョン3.2のアップデート(Open Source Conference 2021 Online/Fukuoka ...
NTT DATA Technology & Innovation
デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣
Masahiro Nishimi
今さらだけどMySQLとライセンス
今さらだけどMySQLとライセンス
Hidenori Ishii
ふつうの受託開発チームのつくりかた
ふつうの受託開発チームのつくりかた
Yoshitaka Kawashima
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
Koichiro Matsuoka
スマートフォン向けサービスにおけるサーバサイド設計入門
スマートフォン向けサービスにおけるサーバサイド設計入門
Hisashi HATAKEYAMA
俺のローカル開発環境 - MTDDC Meetup NAGOYA 2014
俺のローカル開発環境 - MTDDC Meetup NAGOYA 2014
taiju higashi
レガシーシステムのDBマイグレーションし始めた話
レガシーシステムのDBマイグレーションし始めた話
nekogeruge_987
More Related Content
What's hot
大規模Redisサーバ縮小化の戦い
大規模Redisサーバ縮小化の戦い
Yuto Komai
PostgreSQLでスケールアウト
PostgreSQLでスケールアウト
Masahiko Sawada
PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説
Masahiko Sawada
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
onozaty
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
NTT DATA Technology & Innovation
フロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjug
Itsuki Kuroda
押さえておきたい、PostgreSQL 13 の新機能!! (PostgreSQL Conference Japan 2020講演資料)
押さえておきたい、PostgreSQL 13 の新機能!! (PostgreSQL Conference Japan 2020講演資料)
NTT DATA Technology & Innovation
ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門
増田 亨
AmebaのMongoDB活用事例
AmebaのMongoDB活用事例
Akihiro Kuwano
ドメイン駆動設計に15年取り組んでわかったこと
ドメイン駆動設計に15年取り組んでわかったこと
増田 亨
アジャイルコーチから見たScaled Agile Method LeSS版
アジャイルコーチから見たScaled Agile Method LeSS版
Takao Kimura
PostgreSQLアンチパターン
PostgreSQLアンチパターン
Soudai Sone
MongoDBの監視
MongoDBの監視
Tetsutaro Watanabe
Apache Sparkの基本と最新バージョン3.2のアップデート(Open Source Conference 2021 Online/Fukuoka ...
Apache Sparkの基本と最新バージョン3.2のアップデート(Open Source Conference 2021 Online/Fukuoka ...
NTT DATA Technology & Innovation
デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣
Masahiro Nishimi
今さらだけどMySQLとライセンス
今さらだけどMySQLとライセンス
Hidenori Ishii
ふつうの受託開発チームのつくりかた
ふつうの受託開発チームのつくりかた
Yoshitaka Kawashima
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
Koichiro Matsuoka
スマートフォン向けサービスにおけるサーバサイド設計入門
スマートフォン向けサービスにおけるサーバサイド設計入門
Hisashi HATAKEYAMA
What's hot
(20)
大規模Redisサーバ縮小化の戦い
大規模Redisサーバ縮小化の戦い
PostgreSQLでスケールアウト
PostgreSQLでスケールアウト
PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
フロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjug
押さえておきたい、PostgreSQL 13 の新機能!! (PostgreSQL Conference Japan 2020講演資料)
押さえておきたい、PostgreSQL 13 の新機能!! (PostgreSQL Conference Japan 2020講演資料)
ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門
AmebaのMongoDB活用事例
AmebaのMongoDB活用事例
ドメイン駆動設計に15年取り組んでわかったこと
ドメイン駆動設計に15年取り組んでわかったこと
アジャイルコーチから見たScaled Agile Method LeSS版
アジャイルコーチから見たScaled Agile Method LeSS版
PostgreSQLアンチパターン
PostgreSQLアンチパターン
MongoDBの監視
MongoDBの監視
Apache Sparkの基本と最新バージョン3.2のアップデート(Open Source Conference 2021 Online/Fukuoka ...
Apache Sparkの基本と最新バージョン3.2のアップデート(Open Source Conference 2021 Online/Fukuoka ...
デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣
今さらだけどMySQLとライセンス
今さらだけどMySQLとライセンス
ふつうの受託開発チームのつくりかた
ふつうの受託開発チームのつくりかた
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
スマートフォン向けサービスにおけるサーバサイド設計入門
スマートフォン向けサービスにおけるサーバサイド設計入門
Similar to べき等データベースマイグレーションツールmigu
俺のローカル開発環境 - MTDDC Meetup NAGOYA 2014
俺のローカル開発環境 - MTDDC Meetup NAGOYA 2014
taiju higashi
レガシーシステムのDBマイグレーションし始めた話
レガシーシステムのDBマイグレーションし始めた話
nekogeruge_987
はてなのNagios - モニカジ#3
はてなのNagios - モニカジ#3
Shoichi Masuhara
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤と
Toru Takahashi
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤と
Toru Takahashi
Data Engineering at VOYAGE GROUP #jawsdays
Data Engineering at VOYAGE GROUP #jawsdays
Kenta Suzuki
Data Engineering at VOYAGE GROUP #jawsdays
Data Engineering at VOYAGE GROUP #jawsdays
VOYAGE GROUP
2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて
Masahito Zembutsu
Introduction to NetOpsCoding
Introduction to NetOpsCoding
Taiji Tsuchiya
nginxの紹介
nginxの紹介
Takashi Takizawa
システム開発を前進させるためのGradle導入法
システム開発を前進させるためのGradle導入法
Takuma Watabiki
JAMstackは眠らない
JAMstackは眠らない
Kuniyoshi Tone
Gitライフをはじめましょう〜GUIツールで簡単運用 Mac編〜
Gitライフをはじめましょう〜GUIツールで簡単運用 Mac編〜
Erina Takei
ゲームの裏側を支える人たちの裏側
ゲームの裏側を支える人たちの裏側
Riou Tomita
Azure Api Management 俺的マニュアル 2020年3月版
Azure Api Management 俺的マニュアル 2020年3月版
貴志 上坂
Drupalサイトをセキュアに運用するには(入門編)
Drupalサイトをセキュアに運用するには(入門編)
Yoshikazu Aoyama
Unityゲームにオンラインランキングとゴースト機能を追加しよう!
Unityゲームにオンラインランキングとゴースト機能を追加しよう!
史識 川原
Tableauのつまづきポイント
Tableauのつまづきポイント
Shinji Tamura
GUIツールで送る快適な Gitライフ@Creators MeetUp #29
GUIツールで送る快適な Gitライフ@Creators MeetUp #29
Erina Takei
GruntでJavaScript 前作業の自動化!
GruntでJavaScript 前作業の自動化!
leverages_event
Similar to べき等データベースマイグレーションツールmigu
(20)
俺のローカル開発環境 - MTDDC Meetup NAGOYA 2014
俺のローカル開発環境 - MTDDC Meetup NAGOYA 2014
レガシーシステムのDBマイグレーションし始めた話
レガシーシステムのDBマイグレーションし始めた話
はてなのNagios - モニカジ#3
はてなのNagios - モニカジ#3
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤と
Data Engineering at VOYAGE GROUP #jawsdays
Data Engineering at VOYAGE GROUP #jawsdays
Data Engineering at VOYAGE GROUP #jawsdays
Data Engineering at VOYAGE GROUP #jawsdays
2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて
Introduction to NetOpsCoding
Introduction to NetOpsCoding
nginxの紹介
nginxの紹介
システム開発を前進させるためのGradle導入法
システム開発を前進させるためのGradle導入法
JAMstackは眠らない
JAMstackは眠らない
Gitライフをはじめましょう〜GUIツールで簡単運用 Mac編〜
Gitライフをはじめましょう〜GUIツールで簡単運用 Mac編〜
ゲームの裏側を支える人たちの裏側
ゲームの裏側を支える人たちの裏側
Azure Api Management 俺的マニュアル 2020年3月版
Azure Api Management 俺的マニュアル 2020年3月版
Drupalサイトをセキュアに運用するには(入門編)
Drupalサイトをセキュアに運用するには(入門編)
Unityゲームにオンラインランキングとゴースト機能を追加しよう!
Unityゲームにオンラインランキングとゴースト機能を追加しよう!
Tableauのつまづきポイント
Tableauのつまづきポイント
GUIツールで送る快適な Gitライフ@Creators MeetUp #29
GUIツールで送る快適な Gitライフ@Creators MeetUp #29
GruntでJavaScript 前作業の自動化!
GruntでJavaScript 前作業の自動化!
More from Naoya Inada
Tokyo Otaku Mode での PayPal 活用事例
Tokyo Otaku Mode での PayPal 活用事例
Naoya Inada
シンプルなシステム構成フレームワークalnair
シンプルなシステム構成フレームワークalnair
Naoya Inada
kyotovim#1
kyotovim#1
Naoya Inada
HTML5-pronama-study
HTML5-pronama-study
Naoya Inada
dvcs-kyoto
dvcs-kyoto
Naoya Inada
rucs_vim LT
rucs_vim LT
Naoya Inada
Python Kyoto study LT
Python Kyoto study LT
Naoya Inada
Python Kyoto study
Python Kyoto study
Naoya Inada
More from Naoya Inada
(8)
Tokyo Otaku Mode での PayPal 活用事例
Tokyo Otaku Mode での PayPal 活用事例
シンプルなシステム構成フレームワークalnair
シンプルなシステム構成フレームワークalnair
kyotovim#1
kyotovim#1
HTML5-pronama-study
HTML5-pronama-study
dvcs-kyoto
dvcs-kyoto
rucs_vim LT
rucs_vim LT
Python Kyoto study LT
Python Kyoto study LT
Python Kyoto study
Python Kyoto study
べき等データベースマイグレーションツール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 now