Actions
作業 #24
openTable変更時のAPIの再作成
Status:
新規
Priority:
通常
Assignee:
-
Start date:
04/05/2026
Due date:
% Done:
0%
Estimated time:
Description
tableが変更された時、alterでカラム追加・削除とかされた時、ji/ju/jdの各APIを再作成できるようにしよう。
手動にしようか、自動にしようか。
APIがすでに使用されている場合、I/F変更が必要になるだろうから「自動」で再作成されるのは面倒が起こりそう。
なので「手動」でやろう。
ただし、提案はあってもいいかな。
Updated by keiji ono 3 months ago
ロジック的には
- 対象tableのカラムデータ取得 table指定(post) -> column取得
- insert/update/delete sql文作成
- 既存API番号を照会 JetelinaTableApiRelationを参照しよう -> ApiSqlListManager.getRelatedList()
- 3を2で置き換え ApiSqlListManager.<new func> で置き換え
1-2はmig_execute_migration()のロジックをそのまま使える。その後3,4をやると。
4を普通に実行するとリストにappendされるので表示されるAPIの並びが変わってしまう。- 置換え場所をキッチリする
- 表示はソートする
どっちが簡単かなぁ。
DataFrameのsortは簡単そうだけど文字数字混合(ji1,jd2...)だと一工夫も二工夫も必要そうだ。
だったらconfigParamUpdate()でファイル内置換をやっているのでそれと同じくやればいいな。
というわけで1とする。
Updated by keiji ono 2 months ago
処理の流れ
post url: /recreateapi data: "table"=<"table name">
PostDataController.recreateApi() json["table"]
-> DBDataController.recreateApiSentence(tablename::String)
-> postgres: PgDBController.recreateApis(tablename)
mysql :
oracle : ---
API再作成は最初のAPI作成と同じ権限でOKなので「誰でもできる」ってことで。
ref: https://jetelina.org/account-management/#2
Updated by keiji ono about 2 months ago
PostgreSQL版終了
次いでMySQL版終了 → Postgre版と同じやりかたなのでコピペでOKでしたとさ
Actions