Project

General

Profile

Actions

作業 #24

open

Table変更時のAPIの再作成

Added by keiji ono 3 months ago. Updated about 2 months ago.

Status:
新規
Priority:
通常
Assignee:
-
Start date:
04/05/2026
Due date:
% Done:

0%

Estimated time:

Description

tableが変更された時、alterでカラム追加・削除とかされた時、ji/ju/jdの各APIを再作成できるようにしよう。
手動にしようか、自動にしようか。
APIがすでに使用されている場合、I/F変更が必要になるだろうから「自動」で再作成されるのは面倒が起こりそう。
なので「手動」でやろう。
ただし、提案はあってもいいかな。


Related issues 1 (1 open0 closed)

Related to 機能 #13: v3.1.1 もしくはv3.2として新規11/09/2025

Actions
Actions #1

Updated by keiji ono 3 months ago

ロジック的には
  1. 対象tableのカラムデータ取得 table指定(post) -> column取得
  2. insert/update/delete sql文作成
  3. 既存API番号を照会  JetelinaTableApiRelationを参照しよう -> ApiSqlListManager.getRelatedList()
  4. 3を2で置き換え ApiSqlListManager.<new func> で置き換え

1-2はmig_execute_migration()のロジックをそのまま使える。その後3,4をやると。

4を普通に実行するとリストにappendされるので表示されるAPIの並びが変わってしまう。
  1. 置換え場所をキッチリする
1-2 -> PgDBController.recreateApis(tablename::String)
  1. 表示はソートする

どっちが簡単かなぁ。

DataFrameのsortは簡単そうだけど文字数字混合(ji1,jd2...)だと一工夫も二工夫も必要そうだ。
だったらconfigParamUpdate()でファイル内置換をやっているのでそれと同じくやればいいな。
というわけで1とする。

Actions #2

Updated by keiji ono 3 months ago

  • Related to 機能 #13: v3.1.1 もしくはv3.2として added
Actions #3

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

Actions #4

Updated by keiji ono about 2 months ago

PostgreSQL版終了
次いでMySQL版終了 → Postgre版と同じやりかたなのでコピペでOKでしたとさ

Actions #5

Updated by keiji ono about 2 months ago

マニュアル追記しないとね。

Actions

Also available in: Atom PDF