アーカイブ「2026年04月」

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時に、「CURRENT_TIMESTAMP」以外も入力できるようにしました。

実際は、「CURRENT_TIMESTAMP(3)」とかもできるので、それに対応した修正となっています。

MariaDBには、ユニークキーのHASHインデックス化という仕様があるのですが、イマイチなのでやめました。

キーの制約については、MySQLに合わせました。

・textは768まで、blobは3072まで

・text/blobは外部キー設定を禁止

最近導入したaliasという機能で、カラムの情報が増えてしまったため、

テーブルオブジェクトのカラム名の部分を右クリックすると、aliasも含めて表示するようにしました。

ノートに「式として扱う」というチェックボックスを追加しました。

チェックが入っている場合、DDLとして出力されるようになります。

これで、VIEW/FUNCTION/PROCEDURE/TRIGGERなども、定義できるようにしました。

その他、

  • 依存ライブラリの更新
  • マニュアルの最新化
  • 微調整

なども行っております。

やろうやろうとおもっていたことも大体出来たかなという手応えです。

今後の更新は未定ですが、これから実践で使っていくので、

何かあれば、修正や調整、および機能追加も取り入れていきます。

以上

投稿日時:2026年04月26日 22:48   カテゴリー:java, mariadb   [コメントがあればどうぞ]