Help us understand the problem. What is going on with this article?

2020年版スタンドアロンDBマイグレーションツールの比較

概要

Ruby on Rails,CakePHP,LaravelといったWebアプリケーションフレームワークに標準で包含されているデータベースマイグレーションツール。フレームワークは導入したくないが、スタンドアロンでデータベースマイグレーションのみ利用したいというニーズ用に、スタンドアロンで利用可能なマイグレーションツールについてまとめてみる。

データベースマイグレーションとは何か

database作成、テーブル更新用の自動化ツールのこと。下記の機能が含まれる。
- database作成
- テーブル作成
- DBスキーマのバージョン管理(過去に実行されたSQLが特定のテーブルに保存される)

DBマイグレーションツール一覧

選定条件
* スタンドアロンで導入、運用保守が可能である。
* GitHubやBitBucketでソースコードが公開されている、かつスター100以上である。(BitBucketはスタートがないため考慮しない)
* ライセンスが緩めである。(MIT, Apache2.0, etc)
* ドキュメントが存在する。

ツール名 動作環境 ライセンス DSL/RawSQLのサポート サポート対象RDBMS ドキュメント
MyBatis Migration Java Apache2.0 RawSQLのみ JDBCドライバーが存在する
RDBMS全て
あり
liquibase Java Apache2.0 両方 MySQL, PostgreSQL,
Oracle, Sql Server,
Sybase_Enterprise, Sybase_Anywhere,
DB2 , Apache_Derby
derby, HSQL,
H2, Informix,
Firebird, SQLite
あり
Flyway Java Apache2.0 両方 Oracle, SQL Server, Aurora MySQL, MariaDB,
Percona XtraDB Cluster, PostgreSQL,
Aurora PostgreSQL, Redshift,
CockroachDB, SAP HANA,
Sybase ASE, Informix,
H2, HSQLDB,
Derby and SQLite
あり
phpmig PHP None RawSQLのみ MySQL, MariaDB,
PostgreSQL
GitHubのREADMEのみ
phinx PHP MIT 両方 ? あり
ridgepole Ruby MIT 両方 RDBクライアント用
Gemが存在するRDBMS全て
GitHubのREADMEのみ
migrate Go MIT DSLのみ SQLite3, PostgreSQL,
MySQL, SQL Server,
Cassandra, RedShift,
あり
sql-migrate Go MIT 両方 SQLite, PostgreSQL,
MySQL, SQL Server,
Oracle
GitHubのREADMEのみ
goose Go MIT 両方 postgres, mysql,
sqlite3
BitBucketのREADMEのみ
alembic Python MIT 両方 MySQL, SQLServer,
Postgresql, SQLite
あり
simple-db-migrate Python Apache2.0 RawSQLのみ MySQL, SQLServer,
Postgresql
GitHubのREADMEのみ
yoyo-migrations Python Apache2.0 両方 MySQL, SQLServer,
Postgresql, SQLite
あり
db-migrate node.js MIT 両方 Mysql, PostgreSQL,
sqlite3, Mongodb
あり

(参考)
https://qiita.com/nownabe/items/1acce9f6b9f14f74c965
https://qiita.com/k-motoyan/items/6f64d650f14bfb180e54
https://qiita.com/narikei/items/8a71c5439edc9cb66550
https://qiita.com/okoppe8/items/c9f8372d5ac9a9679396

infra-workshop
インフラ技術を勉強したい人たちのためのオンライン勉強会です
https://wp.infra-workshop.tech/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした