アーカイブ「2023年03月」

2023年2月にMariaDB 10.11がリリースされました。

https://mariadb.com/kb/en/changes-improvements-in-mariadb-1011/

LTSリリースということで、2028年2月までのサポートとなります。

基本的には、リリースノートを見ていただければとは思いますが、

個人的には system versioning テーブルの dump/restore サポートがついに入ったか〜という感じです。

たとえば、こんな感じで、テーブルつくって、データ操作します。

create table t_system_versioning (
  id int not null,
  name varchar(32) not null,
  primary key (id)
) with system versioning;

insert into t_system_versioning values (1, 'n1');
update t_system_versioning set name = 'n2' where id = 1;
delete from t_system_versioning where id = 1;

このあとの段階では、当然以下のようになります。

MariaDB [test]> select * from t_system_versioning;
Empty set (0.000 sec)

履歴をすべてを出力すると、以下のようになります。

MariaDB [test]> select *, row_start, row_end from t_system_versioning for system_time all;
+----+------+----------------------------+----------------------------+
| id | name | row_start                  | row_end                    |
+----+------+----------------------------+----------------------------+
|  1 | n1   | 2023-03-22 16:56:29.376669 | 2023-03-22 16:56:53.845864 |
|  1 | n2   | 2023-03-22 16:56:53.845864 | 2023-03-22 16:57:08.520850 |
+----+------+----------------------------+----------------------------+
2 rows in set (0.000 sec)

これまでは、これらの履歴データが dump で取得できませんでした。

10.11で追加されたオプション「–dump-history」を使うことで、履歴が dump に載るようになります。

$ mariadb-dump --databases test --tables t_system_versioning --dump-history
:
:
/*!101100 SET @old_system_versioning_insert_history=@@session.system_versioning_insert_history, @@session.system_versioning_insert_history=1 */;
LOCK TABLES `t_system_versioning` WRITE;
/*!40000 ALTER TABLE `t_system_versioning` DISABLE KEYS */;
INSERT INTO `t_system_versioning` (`id`, `name`, row_start, row_end) VALUES (1,'n1','2023-03-22 07:56:29.376669','2023-03-22 07:56:53.845864'),
(1,'n2','2023-03-22 07:56:53.845864','2023-03-22 07:57:08.520850');
/*!40000 ALTER TABLE `t_system_versioning` ENABLE KEYS */;
UNLOCK TABLES;
:
:

これで、やっと system versioning も使い易くなった感じです。

デフォルトの挙動としてもいい気がしますが。。

その他として、GPGキーが2023年から変わっています。

https://mariadb.com/kb/en/gpg/

バージョンアップの際は、上記を参考にGPGキーを更新する必要があるので、注意が必要です。

また、自分が作成している magentadesk も10.11 に対応しました。

https://github.com/shigenobu/magentadesk

v0.4.9 が 10.11 の対応版となります。

以上

投稿日時:2023年03月22日 17:10   カテゴリー:java, mariadb   [コメントがあればどうぞ]

ER master という優れたツールがあります。

https://ermaster.sourceforge.net/index_ja.html

ただ、もう10年前に更新が止まっており、

eclipseプラグインの上、新しいeclipseでは動作しない(?)ものとなっています。

ER master は、データベースの管理はもとより、設計に注力したツールかと認識しており、

未だこれ以上のものは市場にはないような気はしています。

※有償でしか触れないようなものは除く

ずっと、ER master の代替になるようなものを作りたいと思っており、

非常に不十分ではありますが、ちょっとつくってみました。

(ebonyrack)

https://github.com/shigenobu/ebonyrack

https://github.com/shigenobu/ebonyrack/releases/tag/v0.0.1

(最新はこちら)https://github.com/shigenobu/ebonyrack/releases

mariadbの特有機能を盛り込もうかと思ってmariadbと書いてありますが、

特有機能を入れすぎて、複雑になりすぎてしまったため、

結局特有機能は削ぎ落とし、結果としてmysqlでも問題はない形になっています。

現時点では、不具合もあるでしょうし、機能不十分ではありますが、非常に大変でした。

クロスプラットフォーム(WIN、MAC、LINUX)での動作を目標としたため、

JAVAのSWINGで作成してします。

SWINGは基本機能は揃っていますが、

いわゆる気の利いたコンポーネントはないため、かなりコード量が肥大化しました。

よかったら使ってみてください。

今後もバージョンアップは続けますので。

以上

投稿日時:2023年03月22日 14:51   カテゴリー:java, mariadb, mysql   [コメントがあればどうぞ]