molder

概要

molderはデータベースのテーブル構造をYAMLで管理するツールです
テキストファイルでデータベースの管理が可能になるため、GITなどでーブル構造の差分管理が可能になります
オープンソースで開発しており、ソースはGitHubにあります

deezus-net/Molder
Contribute to deezus-net/Molder development by creating an account on GitHub.

ダウンロードはreleasesページからお願い致します

機能イメージ

YAMLファイルを元にデータベースのテーブルなどを作成/更新することができます

既存のテーブルからYAMLファイルを作成することができます

YAMLファイルを元に複数のデータベースのテーブルなどを一括で作成/更新することができます

使い方

第一引数がコマンドで、以降はオプションが指定できます

molder [コマンド] [オプション]

コマンド

コマンド説明
extractデータベースに接続しテーブルをYAMLとしてエクスポートします
createYAMLを元にテーブルを作成します
recreate既存テーブルをdropし、YAMLを元にテーブルを再構成します
updateYAMLとデータベースの差分を比較し、テーブルやカラムを更新します
diffYAMLとデータベースの差分を表示します

オプション

オプション説明例など
--hosts <hosts>データベースへの接続情報yamlファイルパスhosts.yml
--host <host>データベースホスト(–hosts指定時は接続先名)localhost*
--type <type>データベースタイプmysql, pgsql, mssql*
--user <user>データベースに接続するユーザー*
--password <password>データベースに接続する際のパスワード*
--database <database>データベース名*
--input <input>入力yamlファイルパスdb.yml
--output <output>extract時の出力先ディレクトリ
--querycreate, recreate, update 時にクエリを実行せずに画面に出力します
--dry-runcreate, recreate, update 時にクエリを実行しますが、コミットしません
--helpヘルプ表示

--hosts未指定の場合は*のオプションが必須です

使用例

extract

引数で接続情報を指定する場合

molder extract --host localhost --type mysql --user root --password password --database molder --output .

ファイルで接続情報を設定する場合

molder extract --hosts hosts.yml --output .

create

引数で接続情報を指定する場合

molder create --host localhost --type mysql --user root --password password --database molder --input db.yml

ファイルで接続情報を設定する場合

molder create --hosts hosts.yml --input db.yml

クエリを表示する場合

molder create --hosts hosts.yml --input db.yml --query

recreate

引数で接続情報を指定する場合

molder recreate --host localhost --type mysql --user root --password password --database molder --input db.yml

ファイルで接続情報を設定する場合

molder recreate --hosts hosts.yml --input db.yml

クエリを表示する場合

molder recreate --hosts hosts.yml --input db.yml --query

update

引数で接続情報を指定する場合

molder update --host localhost --type mysql --user root --password password --database molder --input db.yml

ファイルで接続情報を設定する場合

molder update --hosts hosts.yml --input db.yml

クエリを表示する場合

molder update --hosts hosts.yml --inpit db.yml --query

diff

引数で接続情報を指定する場合

molder diff --host localhost --type mysql --user root --password password --database molder --input db.yml

ファイルで接続情報を設定する場合

molder diff --hosts hosts.yml --input db.yml

hostsに関して

YAMLで接続情報を複数記載することができます
下記のように種類の違うデータベースを混在させることもできます
--hostオプションで名前を指定しない場合は全接続先に対してコマンドが実行されます

server1:
  type: mysql
  host: localhost
  user: db_user_1
  password: password
  database: molder
 
server2:
  type: pgsql
  host: localhost
  user: db_user_2
  password: password
  database: molder

server3:
  type: mssql
  host: localhost
  user: sa
  password: !Passw0rd
  database: molder

extractの例

全接続先に対して行う場合 server1.yml, server2.yml, server3.ymlと接続先ごとにファイルが作成されます

molder extract --hosts hosts.yml --output .

接続先名を指定する場合 server1のみをextractし、server1.ymlが作成されます

molder extract --hosts hosts.yml --host server1 --output .

スポンサーリンク
deezus合同会社
タイトルとURLをコピーしました