作業 #24
open
Added by keiji ono 3 months ago.
Updated about 2 months ago.
Description
tableが変更された時、alterでカラム追加・削除とかされた時、ji/ju/jdの各APIを再作成できるようにしよう。
手動にしようか、自動にしようか。
APIがすでに使用されている場合、I/F変更が必要になるだろうから「自動」で再作成されるのは面倒が起こりそう。
なので「手動」でやろう。
ただし、提案はあってもいいかな。
Related issues
1 (1 open — 0 closed)
ロジック的には
- 対象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の並びが変わってしまう。
- 置換え場所をキッチリする
1-2 -> PgDBController.recreateApis(tablename::String)
- 表示はソートする
どっちが簡単かなぁ。
DataFrameのsortは簡単そうだけど文字数字混合(ji1,jd2...)だと一工夫も二工夫も必要そうだ。
だったらconfigParamUpdate()でファイル内置換をやっているのでそれと同じくやればいいな。
というわけで1とする。
- Related to 機能 #13: v3.1.1 もしくはv3.2として added
処理の流れ
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
PostgreSQL版終了
次いでMySQL版終了 → Postgre版と同じやりかたなのでコピペでOKでしたとさ
Also available in: Atom
PDF