ebonyrack 1.1.0 をリリースしました。
https://github.com/shigenobu/ebonyrack/releases
今回は、ローカルDBの変更があるので、プロジェクトをWRITE→READで読み込み直して下さい。
1.0.1〜1.1.0の変更点は以下となります。
(外部キー情報を出力)
私の現場では、外部キーは定義するけど、実際は利用しない、というシーンが多いのですが、
外部キー同士の関係性をたどって、データの不整合を別途検出したいというケースがあり、
JSONファイルとして外部キー情報を出力するようにしました。
↓は、最新のマニュアルのものを出力した例です。※一部修正
[
{
"tableName": "m_member",
"foreignKeys": [
{
"constraintName": "m_member_fk_admin_member_id",
"keyName": "fk_admin_member_id",
"columnNames": [
"admin_member_id"
],
"referenceTableName": "m_member",
"referenceColumnNames": [
"member_id"
],
"onUpdate": "",
"onDelete": "",
"relationship": "0..1 -> 1"
}
]
},
{
"tableName": "t_sale",
"foreignKeys": [
{
"constraintName": "t_sale_fk_product_id",
"keyName": "fk_product_id",
"columnNames": [
"product_id"
],
"referenceTableName": "m_product",
"referenceColumnNames": [
"product_id"
],
"onUpdate": "",
"onDelete": "",
"relationship": "0..N -> 1"
},
{
"constraintName": "t_sale_fk_sale_member_id",
"keyName": "fk_sale_member_id",
"columnNames": [
"sale_member_id"
],
"referenceTableName": "m_member",
"referenceColumnNames": [
"member_id"
],
"onUpdate": "",
"onDelete": "",
"relationship": "0..N -> 1"
}
]
}
]
(パフォーマンス向上)
アウトラインで使うために、秒間2回ワークスペースをキャプチャしているのですが、
キャプチャサイズが大きかったため、サイズを小さくすることで、
パフォーマンス向上を図っています。
(ON UPDATEの修正)
ON UPDATE時に、「CURRENT_TIMESTAMP」以外も入力できるようにしました。
実際は、「CURRENT_TIMESTAMP(3)」とかもできるので、それに対応した修正となっています。
(キーの制約変更)
MariaDBには、ユニークキーのHASHインデックス化という仕様があるのですが、イマイチなのでやめました。
キーの制約については、MySQLに合わせました。
・textは768まで、blobは3072まで
・text/blobは外部キー設定を禁止
(カラムの右クリックによる表示)
最近導入したaliasという機能で、カラムの情報が増えてしまったため、
テーブルオブジェクトのカラム名の部分を右クリックすると、aliasも含めて表示するようにしました。
(ノートの本文を「式」として扱う)
ノートに「式として扱う」というチェックボックスを追加しました。
チェックが入っている場合、DDLとして出力されるようになります。
これで、VIEW/FUNCTION/PROCEDURE/TRIGGERなども、定義できるようにしました。
その他、
- 依存ライブラリの更新
- マニュアルの最新化
- 微調整
なども行っております。
やろうやろうとおもっていたことも大体出来たかなという手応えです。
今後の更新は未定ですが、これから実践で使っていくので、
何かあれば、修正や調整、および機能追加も取り入れていきます。
以上
コメントがあればどうぞ