LoginSignup
131
100

More than 1 year has passed since last update.

2023年度最新版スタンドアロンDBマイグレーションツールOSSの比較

Last updated at Posted at 2018-09-09

概要

Ruby on Rails, CakePHP, LaravelといったWebアプリケーションフレームワークには標準でデータベースマイグレーションツールが包含されている。
一方でデータベースマイグレーションをwebアプリケーションと別に管理したいケースもある。別に管理するためにはフレームワークに包含されているツールよりも、スタンドアロンで利用可能なツールの方が良い。本記事ではスタンドアロンで利用可能なデータベースマイグレーションツールを比較してみる。

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

データベースマイグレーションはRDBMSのdatabase・スキーマ定義をコード化し、テーブル・インデックス更新を自動化することである。主に下記を実施することができる。

  • databaseの作成
  • テーブルの作成・更新
  • インデックスの作成・更新
  • DBスキーマのバージョン管理(過去に実行されたSQLが特定のテーブルに保存される)

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

選定条件

  • OSSである。
  • スタンドアロンで導入、運用保守が可能である。
  • GitHubやBitBucketでソースコードが公開されている、かつスター100以上である。(BitBucketはスタートがないため考慮しない)
  • ライセンスが緩めである。(BSD,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,
Oracle
GitHubのREADMEのみ
yoyo-migrations Python Apache2.0 両方 MySQL, SQLServer,
Postgresql, SQLite
あり
db-migrate node.js MIT 両方 Mysql, PostgreSQL,
sqlite3, Mongodb
あり
node-pg-migrate node.js MIT 両方 PostgreSQL あり

(参考)
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

131
100
7

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
131
100