Preskoči na vsebino

Orodja

Strežnik ponuja 63 orodij: pet orodij seje, tri orodja za branje, 54 orodij za urejanje, po eno za vsako operacijo urejanja, in erd_batch, ki izvede več orodij za urejanje kot eno spremembo.

Vsako orodje razen erd_list_documents sprejme kot prvi argument path, pot do dokumenta, spodnje tabele pa ta argument izpuščajo. Argument, označen z ?, je neobvezen.

Orodja seje​

OrodjeArgumentiKaj naredi
erd_list_documentsNavede dokumente ERD s polji path, open, active, dirty in readonly: dokumente urejevalnika, ki streže delovni imenik, kar v razvojnem okolju JetBrains zajema vse odprte projekte, sicer pa datoteke ERD v delovnem imeniku.
erd_open_documentcreate?Odpre dokument za urejanje, in sicer v urejevalniku ERD Editor znotraj urejevalnika, ki ga streže, če tak urejevalnik obstaja. Z argumentom create najprej ustvari datoteko, če ta ne obstaja, ime brez končnice pa dobi končnico .erd.json.
erd_saveShrani dokument, ki ga ima urejevalnik. VS Code pusti spremembe agenta neshranjene, dokler se to orodje ne pokliče; aplikacija Obsidian in razvojno okolje JetBrains jih shranjujeta tako kot vaše, to orodje pa jih zapiše takoj. V načinu brez vmesnika je vsaka sprememba že zapisana in to orodje ne naredi ničesar.
erd_undoRazveljavi zadnjo spremembo, ki jo je naredil ta agent, nikoli vaše. Klici, ki niso ustvarili vnosa za razveljavitev, se preskočijo in navedejo.
erd_redoZnova uveljavi spremembo, ki jo je nazadnje razveljavilo orodje erd_undo.

Za to, kaj v posameznem načinu naredita shranjevanje in razveljavitev, glejte stran V živo in brez vmesnika.

Branje dokumenta​

OrodjeArgumentiKaj naredi
erd_listquery?, offset?, limit?, namesOnly?Nastavitve in števila, nato stran tabel z njihovimi indeksi in relacijami, vsaka tabela z identifikatorjem, položajem in velikostjo na platnu, številom stolpcev in skupino tabel, če je v kateri. Razen pri iskanju tabelam sledijo skupine tabel in nato beležke.
erd_gettableIds?, tableNames?, relationshipIds?, indexIds?, memoIds?, tableGroupIds?Navedene entitete v celoti: tabele z njihovimi stolpci in skupino tabel, relacije z njihovimi stolpci ter vrednostma onDelete in onUpdate, indeksi z njihovimi stolpci, beležke z besedilom, skupine tabel z njihovimi tabelami.
erd_readformat, vendor?, statements?, header?, tableIds?, tableNames?, groupNames?Celoten dokument naenkrat v enem od štirih formatov ali DDL samo nekaterih tabel ali skupin tabel.

Agent poišče identifikatorje z orodjem erd_list, stolpce in druge podrobnosti prebere z orodjem erd_get, te identifikatorje pa poda orodjem za urejanje. Velikost tabele v orodju erd_list je okvir, ki ga tabela zaseda na platnu: višina je natančna, širina približna. Skupina tabel se navede s pravokotnikom, ki ga hrani, z imenom, barvo in številom tabel, ki jih vsebuje. Vsaka relacija se navede enkrat, pri eni od svojih dveh tabel. Nastavitve, ki jih navajata orodji erd_list in erd_read, so tiste, ki se shranijo v datoteko – glejte razdelek Nastavitve.

Orodje erd_read sprejme enega od štirih formatov:

formatKaj vrne
snapshotKompakten JSON z vsemi entitetami in njihovimi identifikatorji, vključno s skupinami tabel, ter nastavitve s skripti Sheme SQL. Izpusti, kar se razlikuje od enega gledalca do drugega: izmerjene širine, vrstni red prekrivanja, pogled in zavihek. Pri veliki shemi je obsežen.
sqlDDL za eno od osmih zbirk podatkov: Databricks, MariaDB, MSSQL, MySQL, Oracle, PostgreSQL, Snowflake ali SQLite. Privzeta vrednost argumenta vendor je zbirka podatkov, nastavljena v dokumentu. DDL celotnega dokumenta vključuje njegove skripte pred tabelami in za njimi. Z argumenti tableIds, tableNames ali groupNames samo te tabele s tujimi ključi, ki jih vsebujejo, in brez skriptov. Tuji ključi vključujejo svoja dejanja ON DELETE in ON UPDATE, razen tistih, ki jih ciljna zbirka podatkov izpusti – glejte razdelek ON DELETE in ON UPDATE.
jsonCeloten dokument natanko tako, kot shranjevanje zapiše datoteko, vključno s spremembami, ki jih urejevalnik še ni shranil – glejte razdelek Oblika za shranjevanje in vrednost med izvajanjem.
scriptsSamo skripta dokumenta pred tabelami in za njimi, v obliki {"before":"…","after":"…"}, vsak prazen, če ni nastavljen, ne glede na to, kako velika je shema.

Argumente vendor, statements, header, tableIds, tableNames in groupNames sprejme samo format sql, vsak drug format pa jih zavrne.

  • statements: create, privzeta vrednost; ifNotExists, ki v MySQL, MariaDB, PostgreSQL, SQLite in Databricks zapiše CREATE TABLE IF NOT EXISTS, v drugih pa navaden CREATE TABLE; ali recreate, ki tabele pred ustvarjanjem izbriše, pri čemer Snowflake namesto tega zapiše CREATE OR REPLACE TABLE.
  • header: none, privzeta vrednost; use, ki izbere zbirko podatkov ali shemo, ki jo določa ime zbirke podatkov dokumenta; ali createAndUse, ki jo najprej ustvari. Oracle pozna samo use, zato createAndUse tam zapiše use, PostgreSQL pa pozna samo createAndUse, zato use tam ne zapiše glave. SQLite ne zapiše nobene, nobena zbirka podatkov pa je ne zapiše, dokler je ime zbirke podatkov prazno ali ni preprost identifikator.
  • groupNames: tabele navedenih skupin tabel, po imenu ne glede na velikost črk, združene s tabelami iz tableIds in tableNames. Ime, ki se ne ujema z nobeno skupino, se zavrne s kodo notFound. Skupina brez tabel ne doda nobene, branje, ki ostane brez vsake tabele, na primer ko so vse navedene skupine prazne in ni navedena nobena tabela, pa se zavrne s kodo invalidArgs.

Argumenta statements in header veljata tudi za DDL nekaterih tabel. Delujeta kot možnosti Statements in Header na zavihku Shema SQL urejevalnika, le da ima zavihek na začetku nastavljeni možnosti If not exists in CREATE + USE. Imena se obdajo z narekovaji vrste, ki jo shranjuje datoteka, dokler je nastavitev Bracket Type zaklenjena, pa z narekovaji zaklenjene vrste – glejte razdelek Zaklepanje.

Velike sheme​

Delujejo tudi sheme s stotinami ali tisoči tabel. Branje vrne največ 40.000 znakov, kar je pod mejo, pri kateri Claude Code rezultat orodja odloži v datoteko.

  • erd_list privzeto vrne stran s 100 elementi, najprej tabele, nato skupine tabel in nato beležke, z vrednostma nextOffset in note pa pove, kje se začne naslednja stran. To vrednost nextOffset podajte kot offset, z enakim argumentom query.
  • query najde tabele po besedah v imenu ali komentarju tabele ali stolpca, ne glede na velikost črk. Tabele, katerih imena vsebujejo več teh besed, se navedejo najprej. Iskanje ne navaja skupin tabel ali beležk.
  • namesOnly navede samo imena tabel, približno 2.000 kratkih imen v enem odgovoru.
  • erd_get in erd_read poleg identifikatorjev sprejmeta tudi tableNames, erd_read pa sprejme še groupNames, zato agent, ki ga prosijo za poizvedbo SQL nad veliko shemo, prebere DDL samo tistih tabel, ki jih potrebuje.
  • erd_get identifikatorje in imena, ki ne označujejo ničesar, navede pod missing, identifikatorje, za katere v enem odgovoru ni prostora, pa pod notReturned, da jih je mogoče zahtevati znova.
  • Branje, ki je preveliko za en odgovor, se zavrne s kodo tooLarge in navodilom, kako ga zožiti.

Orodja za urejanje​

Identifikatorji prihajajo iz orodij erd_list in erd_get ali iz polja createdIds klica, ki je entiteto ustvaril. Nov identifikator sestavlja 25 malih črk in števk, kot je 03h17be2plxpj5n59tqag7ogj, identifikator, ki ga dokument že vsebuje, pa ohrani svojo obliko, zato iz oblike identifikatorja ne sklepajte ničesar. x in y sta levi in zgornji rob na platnu v slikovnih pikah, barva pa je šestnajstiška barva CSS, kot je #3b82f6, ali prazen niz, ki barvo odstrani.

Tabele​

OrodjeArgumentiKaj naredi
erd_add_tableDoda prazno tabelo na prosto mesto in vrne njen identifikator v createdIds.
erd_remove_tabletableIdOdstrani tabelo z njenimi stolpci, indeksi in vsemi relacijami, ki se je dotikajo.
erd_change_table_nametableId, valuePreimenuje tabelo.
erd_change_table_commenttableId, valueNastavi komentar tabele. Prazen niz ga počisti.
erd_change_table_colortableId, colorNastavi barvo tabele.
erd_move_tabletableId, x, yPremakne tabelo na položaj na platnu.
erd_move_tablespositionsPremakne več tabel v eni spremembi, ki jo razveljavi en klic erd_undo. positions vsebuje { tableId, x, y } za vsako tabelo, vsako tabelo največ enkrat.
erd_sort_tablesRazporedi vse tabele v vrstice po platnu, najprej tiste z najmanj stolpci, tako kot jih razporedijo erd_import_sql, erd_import_graphql, erd_import_dbml in erd_import_aml. Tabele skupine tabel ostanejo skupaj, okvir vsake skupine pa se prilagodi okoli njih.

Stolpci​

OrodjeArgumentiKaj naredi
erd_add_columntableIdDoda prazen stolpec v tabelo in vrne njegov identifikator v createdIds.
erd_remove_columnstableId, columnIdsOdstrani stolpce iz ene tabele, skupaj z relacijami in vnosi v indeksih, ki jih uporabljajo.
erd_change_column_nametableId, columnId, valuePreimenuje stolpec.
erd_change_column_data_typetableId, columnId, valueNastavi podatkovni tip, kot je INT ali VARCHAR(255). Ko je sinhronizacija tipa podatkov v relacijah vklopljena, sprememba sledi relacijam v obe smeri, tako kot v urejevalniku: tip serial pride do tujih ključev kot celoštevilski tip, ki ga hrani, tako kot ga kopira erd_add_relationship, ključ serial pa ohrani svoj tip, ko se spremeni eden od njegovih tujih ključev, kar spremembo tam ustavi. Sinhronizacijo vklopi ali izklopi uporabnik, erd_list pa jo navaja kot relationshipDataTypeSync.
erd_change_column_defaulttableId, columnId, valueNastavi privzeto vrednost kot besedilo SQL. Prazen niz jo počisti.
erd_change_column_commenttableId, columnId, valueNastavi komentar. Prazen niz ga počisti.
erd_set_column_primary_keytableId, columnId, valuetrue stolpec vključi v primarni ključ, false ga iz njega odstrani.
erd_set_column_uniquetableId, columnId, valueNastavi, ali je stolpec enoličen.
erd_set_column_not_nulltableId, columnId, valueNastavi, ali je stolpec NOT NULL.
erd_set_column_auto_incrementtableId, columnId, valueNastavi, ali se stolpec samodejno povečuje.
erd_move_columntableId, columnId, targetColumnIdPremakne stolpec znotraj njegove tabele na položaj drugega stolpca.

Relacije​

relationshipType je kardinalnost na koncu pri podrejeni tabeli: ZeroOne, ZeroN, OneOnly ali OneN. Začetna tabela je nadrejena tabela, torej ciljna stran, ki vsebuje primarni ključ, končna tabela pa je podrejena. onDelete in onUpdate sta dejanji ON DELETE in ON UPDATE tujega ključa: none, noAction, cascade, setNull, setDefault ali restrict. none ne zapiše določila, zato velja privzeto dejanje zbirke podatkov – glejte razdelek ON DELETE in ON UPDATE. Dejanje, ki je izpuščeno pri erd_add_relationship ali erd_link_columns, je none.

OrodjeArgumentiKaj naredi
erd_add_relationshipstartTableId, endTableId, relationshipType, onDelete?, onUpdate?Poveže dve tabeli z relacijo. Primarni ključ nadrejene tabele kopira v podrejeno kot stolpce tujega ključa, pri čemer najprej ustvari stolpec primarnega ključa, če ga nadrejena tabela nima. Vsak stolpec tujega ključa dobi ime tako, kot ga poimenuje risanje relacije v urejevalniku: ključ id tabele users da users_id, ključ, kot je member_id, pa ohrani svoje ime – glejte razdelek Imena stolpcev tujega ključa. Vsak kopira podatkovni tip svojega ključa, le da ključ serial da celoštevilski tip, ki ga hrani, npr. integer za serial4, sam serial pa zunaj PostgreSQL, MySQL in MariaDB ostane serial – glejte razdelek Identifikacijske relacije. createdIds vsebuje novi stolpec ključa, če je bil ustvarjen, stolpce tujega ključa in na koncu identifikator relacije.
erd_link_columnsstartTableId, startColumnIds, endTableId, endColumnIds, relationshipType, onDelete?, onUpdate?Nariše relacijo med obstoječimi stolpci in začetne ter končne stolpce poveže v pare po položaju. Ne preimenuje nobenega stolpca in ne spremeni nobenega podatkovnega tipa.
erd_remove_relationshiprelationshipIdOdstrani povezovalno črto relacije. Njeni stolpci tujega ključa ostanejo v tabeli.
erd_change_relationship_typerelationshipId, relationshipTypeSpremeni kardinalnost relacije.
erd_change_relationship_on_deleterelationshipId, onDeleteNastavi dejanje ON DELETE relacije: kaj brisanje nadrejene vrstice naredi z njenimi podrejenimi vrsticami.
erd_change_relationship_on_updaterelationshipId, onUpdateNastavi dejanje ON UPDATE relacije: kaj sprememba nadrejenega ključa naredi z njegovimi podrejenimi vrsticami.

erd_add_relationship stolpce tujega ključa poimenuje ob izvedbi, zato najprej poimenujte nadrejeno tabelo in njen primarni ključ.

Nobeno orodje ne spremeni stolpcev obstoječe relacije tako kot okno Preslikaj stolpce urejevalnika. Za preslikavo relacije na druge stolpce izvedite erd_remove_relationship, ki njene stolpce tujega ključa pusti v tabeli, in erd_link_columns z želenimi stolpci, oboje v enem klicu erd_batch, ki ga razveljavi en klic erd_undo.

Indeksi​

Identifikator stolpca indeksa je vnos na seznamu stolpcev indeksa, ki ga vrne erd_get, in ne identifikator stolpca tabele.

OrodjeArgumentiKaj naredi
erd_add_indextableIdDoda prazen indeks v tabelo in vrne njegov identifikator v createdIds.
erd_remove_indexindexIdOdstrani indeks.
erd_change_index_nameindexId, valuePreimenuje indeks.
erd_set_index_uniqueindexId, valueNastavi, ali je indeks enoličen.
erd_add_index_columnindexId, columnIdDoda stolpec tabele indeksa in vrne identifikator novega stolpca indeksa. Stolpec, ki je že v indeksu, ostane nespremenjen.
erd_remove_index_columnindexId, indexColumnIdOdstrani en stolpec iz indeksa.
erd_move_index_columnindexId, indexColumnId, targetIndexColumnIdPremakne stolpec znotraj indeksa na položaj drugega stolpca tega indeksa.
erd_set_index_column_orderindexId, indexColumnId, orderTypeNastavi vrstni red razvrščanja enega stolpca v indeksu, ASC ali DESC.

Beležke​

OrodjeArgumentiKaj naredi
erd_add_memoDoda prazno beležko na prosto mesto in vrne njen identifikator v createdIds.
erd_remove_memomemoIdOdstrani beležko.
erd_change_memo_valuememoId, valueZamenja besedilo beležke.
erd_change_memo_colormemoId, colorNastavi barvo beležke.
erd_move_memomemoId, x, yPremakne beležko na položaj na platnu.
erd_resize_memomemoId, width, heightSpremeni velikost beležke. Širina mora biti vsaj približno 116 slikovnih pik, višina pa vsaj 100. Ne ustvari vnosa za razveljavitev, ker urejevalnik spremembo velikosti beležke zabeleži samo pri vlečenju.

Dokler so beležke skrite z View Option → Memos, erd_add_memo beležko še vedno doda, ta pa ostane skrita, dokler se beležke znova ne prikažejo. erd_list in erd_get navajata tudi skrite beležke.

Skupine tabel​

Skupina tabel je poimenovan okvir, narisan za njenimi tabelami, njena barva pa je vidna na okviru in čez glave njenih tabel – glejte stran Skupine tabel. Tabela je v največ eni skupini. erd_move_table, erd_move_tables in erd_move_table_group nikoli ne spremenijo, katere tabele vsebuje skupina, ne glede na to, kam postavijo tabelo, medtem ko se v urejevalniku tabela pridruži skupini ali jo zapusti glede na to, kam jo spustite – glejte razdelek Dodajanje in odstranjevanje tabel. erd_add_table_group in erd_set_table_group dodata tabele v skupino, erd_remove_table_group pa njene tabele pusti brez skupine. Skupina hrani pravokotnik, širok vsaj 160 slikovnih pik in visok vsaj 100, vključno z naslovno vrstico, urejevalnik pa okvir nariše povečan tako, da zajame vsako od njenih tabel.

OrodjeArgumentiKaj naredi
erd_add_table_groupname, color?, x?, y?, width?, height?, tableIds?Doda skupino in vrne njen identifikator v createdIds. Podajte bodisi tableIds bodisi pravokotnik: x, y, width in height skupaj. Z argumentom tableIds vsaka tabela zapusti skupino, v kateri je bila, pravokotnik pa se prilagodi okoli tabel tako, kot ga prilagodi združevanje izbranih tabel v skupino. Pravokotnik zajame vse tabele brez skupine, katerih središče leži v njem, tako kot risanje skupine. Prazen argument name pusti skupino brez imena. En klic erd_undo odstrani skupino in vsako tabelo vrne v skupino, v kateri je bila.
erd_remove_table_groupgroupIdOdstrani skupino. Njene tabele ostanejo, kjer so, brez skupine.
erd_change_table_group_namegroupId, valuePreimenuje skupino. Prazen niz jo pusti brez imena.
erd_change_table_group_colorgroupId, colorNastavi barvo skupine.
erd_move_table_groupgroupId, x, yPremakne skupino tako, da se njen pravokotnik začne v tej točki, njene tabele pa se premaknejo za enako razdaljo, tako kot pri vlečenju njene naslovne vrstice. Premik pod 20 slikovnih pik, vodoravno in navpično skupaj, ne ustvari vnosa za razveljavitev.
erd_resize_table_groupgroupId, x?, y?, width, heightNastavi pravokotnik skupine, njene tabele pa ostanejo, kjer so. Če sta x in y izpuščena, njen kot ostane nespremenjen. Pravokotnik, ki ne bi zajel tabel skupine z njihovim notranjim odmikom, se zavrne s sporočilom, ki navede okvir, ki ga mora zajeti.
erd_set_table_grouptableIds, groupIdDoda tabele v skupino, pri čemer vsaka zapusti skupino, v kateri je bila. groupId z vrednostjo null ali prazen niz jih odstrani iz vseh skupin.

Dokler so skupine skrite z View Option → Table Groups, ta orodja še vedno dodajajo in spreminjajo skupine, ki ostanejo skrite, dokler se skupine ne prikažejo – glejte razdelek Skrivanje skupin. erd_sort_tables ohrani tabele vsake skupine skupaj, erd_import_dbml in erd_import_json prineseta skupine – glejte razdelek Uvoz – erd_read pa z argumentom groupNames zapiše DDL izbranih skupin. Izdaja ERD Editor, ki še ne pozna skupin tabel, ob shranjevanju datoteke zavrže njene skupine, kot to storijo razširitev za VS Code pred različico 4.0.0 ter vtičnika za Obsidian in JetBrains pred različico 1.0.0 – glejte razdelek Posodabljanje.

Nastavitve​

Agent nastavlja nastavitve same sheme: zbirko podatkov, njeno ime in skripte Sheme SQL. Vse druge nastavitve, ki jih hrani dokument, nastavlja uporabnik v urejevalniku: stikala možnosti pogleda, možnosti zavihka Nastavitve, jezik in zapis imen generatorja kode, vrsto narekovajev in zaklepe. Nobeno orodje jih ne spremeni, razen uvozov v načinu replace: erd_import_json prinese nastavitve in zaklepe dokumenta, ki ga naloži, preostali štirje pa pogled vrnejo na začetek platna – glejte razdelek Uvoz. Strežnik različice 1.0.0 je odstranil orodja, ki so jih nastavljala: erd_set_language, erd_set_table_name_case, erd_set_column_name_case, erd_set_bracket_type, erd_set_relationship_data_type_sync, erd_set_relationship_optimization, erd_set_column_order, erd_set_max_width_comment, erd_set_ignore_save_settings in erd_set_show.

erd_list in format snapshot orodja erd_read navajata nastavitve tako, kot jih shrani datoteka, pri čemer lockSettings vsebuje eno zastavico za vsak zaklep: viewport, canvasType, language, tableNameCase, columnNameCase in bracketType. Zaklenjen jezik, zapis imen ali vrsta narekovajev se navede z zaklenjeno vrednostjo, tisto, ki jo hrani datoteka in s katero se odpre vsak urejevalnik, ne glede na to, kaj kaže zaslon urejevalnika. Pogled in zavihek se ne navajata.

erd_set_ddl_script ustvari vnos za razveljavitev. erd_set_database in erd_set_database_name ga ne ustvarita, zato ju erd_undo ne more razveljaviti.

OrodjeArgumentiKaj naredi
erd_set_databasevalueNastavi zbirko podatkov: MariaDB, MSSQL, MySQL, Oracle, PostgreSQL, SQLite, Databricks ali Snowflake. Določi podatkovne tipe zbirke podatkov in DDL, ki jo erd_read zapiše, ko argument vendor ni podan.
erd_set_database_namevalueNastavi ime zbirke podatkov, ki ga navajata glavi use in createAndUse orodja erd_read.
erd_set_ddl_scriptposition, sqlNastavi enega od dveh skriptov, zapisanih okoli tabel – glejte razdelek Skripti pred tabelami in za njimi. position je before, zapisan pred tabelami, npr. CREATE EXTENSION ali CREATE SCHEMA, ali after, zapisan za njimi, npr. GRANT ali CREATE VIEW. sql zamenja celoten skript, največ 10.000 znakov, prazen niz pa ga odstrani. Trenutnega najprej preberite s formatom scripts orodja erd_read.

Skript gre v DDL vsake zbirke podatkov nespremenjen, zato ga napišite za zbirko podatkov dokumenta. Pri MSSQL se za skript, katerega zadnja vrstica ni GO, doda vrstica GO. Izdaja ERD Editor, ki še ne pozna teh skriptov, ob shranjevanju datoteke zavrže njene skripte, kot to storijo razširitev za VS Code pred različico 4.0.0 ter vtičnika za Obsidian in JetBrains pred različico 1.0.0 – glejte razdelek Posodabljanje.

Uvoz​

Ta orodja preberejo shemo tako kot meni Uvozi v urejevalniku – glejte stran Uvoz in izvoz datotek. Vsako sprejme besedilo kot value in mode: replace, privzeto vrednost, ali append.

OrodjeArgumentiKaj naredi
erd_import_sqlvalue, mode?Naloži SQL DDL, stavke CREATE TABLE in podobno.
erd_import_graphqlvalue, mode?Naloži GraphQL SDL.
erd_import_dbmlvalue, mode?Naloži DBML. Vsak TableGroup postane skupina tabel s tabelami, ki jih navaja – glejte razdelek DBML.
erd_import_amlvalue, mode?Naloži AML.
erd_import_jsonvalue, mode?Naloži dokument JSON erd-editor, npr. drugo datoteko .erd.json.

replace nadomesti dokument, erd_undo pa obnovi prejšnjega:

  • erd_import_sql, erd_import_graphql, erd_import_dbml in erd_import_aml zamenjajo vse tabele, relacije, indekse, beležke in skupine tabel. Ohranijo nastavitve dokumenta, vključno z zaklepi, razen pogleda, ki se vrne na začetek platna pri 100 %.
  • erd_import_json zamenja celoten dokument, vključno z nastavitvami: nastavitve in zaklepi iz besedila JSON nadomestijo nastavitve in zaklepe tega dokumenta, besedilo JSON, ki ne beleži zaklepov, pa vklopi vse zaklepe in postavi pogled na začetek platna. Če želite ohraniti nastavitve tega dokumenta, začnite z besedilom, ki ga vrne format json orodja erd_read. Prazno besedilo da nov dokument, kakršnega ustvari erd_open_document z argumentom create.

append uvoz doda v dokument, tako kot ukaz Uvozi in dodaj urejevalnika, en klic erd_undo pa odstrani celoten dodatek:

  • Vsebina besedila pride v dokument kot nove entitete z novimi identifikatorji, v blok pod vsem, kar dokument vsebuje, vključno s skritimi beležkami in skupinami tabel, blok pa je poravnan z levim robom dokumenta. Vse obstoječe tabele in nastavitve ostanejo, vključno s tabelo z enakim imenom: nič se ne združi po imenu.
  • Relacije in indeksi se ustvarijo samo med tabelami, ki jih prinese uvoz, zato se tuji ključ do tabele, ki je besedilo ne deklarira, zavrže.
  • erd_import_sql, erd_import_graphql in erd_import_aml dodajo tabele z njihovimi relacijami in indeksi, erd_import_dbml pa tudi skupine tabel. erd_import_json doda tabele, relacije, indekse, beležke in skupine tabel, nikoli pa njegovih nastavitev, in zavrne prazno besedilo.

Dokument JSON ohrani svojo razporeditev, vključno s skupinami tabel: z replace tam, kamor postavi svoje tabele, z append pa znotraj dodanega bloka. Tabele iz SQL, GraphQL, DBML in AML se razporedijo v vrstice, najprej tiste z najmanj stolpci in s tabelami vsake skupine skupaj, tako kot jih razporedi erd_sort_tables, nikoli s postavitvijo Flow, kot jih razporedi ukaz Uvozi v urejevalniku, kadar je to mogoče. Ta štiri orodja v obeh načinih zavrnejo prazno besedilo.

erd_batch​

erd_batch izvede več orodij za urejanje po vrsti kot eno spremembo, vse ali nič.

  • operations vsebuje do 100 vnosov, vsak v obliki { tool, as?, args? }, pri čemer so args argumenti orodja brez path.
  • Operacije se najprej preizkusijo na kopiji dokumenta. Zavrnjena operacija se navede, na primer operations[1] erd_remove_table: …, in nobena operacija se ne izvede.
  • En klic erd_undo razveljavi celoten paket, razen operacij, ki jih ne more razveljaviti in jih navede undoNote v rezultatu: operacij orodja, ki ne ustvari vnosa za razveljavitev, kot je erd_set_database, in operacij, ki so spremenile dokument, ne da bi ustvarile tak vnos, kot je kratek klic erd_move_table_group. Paket, ki ni ustvaril nobenega vnosa za razveljavitev, erd_undo preskoči. historyEntries v rezultatu šteje vnose v zgodovini urejevalnika znotraj paketa, ne klicev erd_undo.
  • V seji v živo urejevalnik sprejme ves paket ali nič od njega.

Agent pred klicem ne more poznati identifikatorjev, ki jih bo paket ustvaril, zato operacija, poimenovana z as, omogoči poznejši operaciji, da se sklicuje nanje: $name ali $name.0 za njen prvi ustvarjeni identifikator, $name.1 za drugega in $name.last za zadnjega. Ime vsebuje črke ASCII, števke in podčrtaje, se ne začne s števko in poimenuje samo eno operacijo. Sklic se razreši samo tam, kjer argument sprejme identifikator entitete, zato ime ali komentar z besedilom $x ostane besedilo.

Tabela s stolpci in relacijo v enem klicu:

{
"path": "shop.erd.json",
"operations": [
{ "tool": "erd_add_table", "as": "users" },
{ "tool": "erd_change_table_name", "args": { "tableId": "$users", "value": "users" } },
{ "tool": "erd_add_column", "as": "uid", "args": { "tableId": "$users" } },
{ "tool": "erd_change_column_name", "args": { "tableId": "$users", "columnId": "$uid", "value": "id" } },
{ "tool": "erd_change_column_data_type", "args": { "tableId": "$users", "columnId": "$uid", "value": "BIGINT" } },
{ "tool": "erd_set_column_primary_key", "args": { "tableId": "$users", "columnId": "$uid", "value": true } },
{ "tool": "erd_add_table", "as": "orders" },
{ "tool": "erd_change_table_name", "args": { "tableId": "$orders", "value": "orders" } },
{ "tool": "erd_add_relationship", "args": { "startTableId": "$users", "endTableId": "$orders", "relationshipType": "ZeroN", "onDelete": "cascade" } }
]
}

Tabela users in njen ključ id dobita imeni pred relacijo, zato je stolpec tujega ključa, ki ga relacija doda v tabelo orders, users_id.

Rezultati​

Urejanje vrne eno vrstico JSON:

{"tool":"erd_add_table","mode":"live","createdIds":["03h17be2plxpj5n59tqag7ogj"],"batches":1,"historyEntries":1}
PoljePomen
modelive ali headless – glejte stran V živo in brez vmesnika.
createdIdsIdentifikatorji tega, kar je klic ustvaril, po vrsti.
batches, historyEntriesKoliko paketov sprememb je klic poslal in koliko vnosov v zgodovini urejevalnika je ustvaril.
undoable, undoNoteundoable je false, ko bo erd_undo klic preskočil, undoNote pa pove, zakaj: orodje ne ustvari vnosa za razveljavitev, klic je spremenil dokument, ne da bi ustvaril tak vnos, kot to stori erd_move_table_group za manj kot 20 slikovnih pik, ali pa je dokument vrednost že vseboval. Rezultat erd_batch vedno vsebuje undoNote. Če je paket ustvaril vnos za razveljavitev, opomba pove, da en klic erd_undo razveljavi paket, in navede vsako operacijo, ki jo pusti nerazveljavljeno; če ga ni ustvaril, rezultat vsebuje undoable: false, opomba pa pove, da ga erd_undo preskoči.
mismatchPrisotno, ko je klic ustvaril drugačno število paketov ali vnosov v zgodovini, kot ga orodje deklarira.
notesPrisotno, ko se je pri seji kaj spremenilo, npr. urejevalnik, ki se je zaprl ali prenehal streči dokument, ali datoteka, ki se je spremenila na disku.

Zavrnitev je rezultat napake s kodo in sporočilom, ki pove, kaj storiti:

{"error":{"code":"notFound","message":"tableId nope names no live table; read the document for current ids"}}
codeZakaj
notFoundIdentifikator ne označuje ničesar, kar trenutno obstaja, ali pa datoteka ne obstaja.
invalidArgsArgument manjka ali ima napačno vrednost.
invalidPathPot ni dokument ERD. V sistemu Windows tudi pot z imenom, ki ga Windows ne shrani tako, kot je zapisano, ali pot, ki pripelje do dokumenta, ki ga ima urejevalnik pod drugo potjo, sporočilo pa jo navede.
invalidDocumentDatoteka ni dokument, ki ga urejevalnik lahko prebere.
tooLargeBranje ne gre v en odgovor.
blockedUrejevalnik z izklopljenim središčem ima dokument. Sporočilo pove, kako ga vklopiti: v VS Code zaupajte delovnemu prostoru in vklopite dineug.erd-editor.agentHub.enabled ali znova naložite okno; v aplikaciji Obsidian vklopite Coding agents ali znova naložite aplikacijo Obsidian; v razvojnem okolju JetBrains vklopite Coding agents ali, če je ta nastavitev že vklopljena, znova zaženite razvojno okolje.
hubDisabledRazvojno okolje JetBrains ima dokument samo v projektu, ki mu ne zaupa. Branje še vedno deluje; zaupajte projektu, da bo agent lahko urejal.
conflictDatoteka se je med klicem spremenila na disku. Nič ni bilo zapisano.
hubAppeared, hubGoneUrejevalnik je začel streči dokument, ki ga je agent urejal na disku, ali pa urejevalnik, ki ga je stregel, še vedno teče, vendar njegove zaklepne datoteke in povezave ni več. Nič ni bilo zapisano.
notSavedOrodje erd_save ni moglo shraniti dokumenta urejevalnika.
readonlyUrejevalnik ima dokument samo za branje, npr. datoteko, v katero ne more pisati ali je ne more prebrati kot diagram. Brez urejevalnika je samo za branje datoteka sama, npr. datoteka v sistemu Perforce ali TFVC, ki ni izvlečena za urejanje. Nič ni bilo zapisano.
protocolMismatchRazširitev ali vtičnik ERD Editor v urejevalniku in strežnik uporabljata vsak svojo različico protokola, npr. strežnik različice 1.0.0 z razširitvijo za VS Code različice 3.x. Zavrne se tudi branje, sporočilo pa navede stran, ki jo je treba posodobiti – glejte razdelek Posodabljanje.
hubUnreachable, timeout, disconnectedSredišče urejevalnika ni sprejelo povezave, ni odgovorilo v 30 sekundah ali je med klicem prekinilo povezavo. V sistemu Windows hubUnreachable pomeni tudi, da je Windows agentu preprečil dostop do središča: urejevalnik teče z več pravicami kot agent, na primer ko je bil zagnan kot skrbnik, agent pa ne, ali pa agent teče v peskovniku.

Druge kode so redkejše, vsaka zavrnitev pa vsebuje sporočilo, ki pove, kaj se je zgodilo.

Orodja za urejanje, erd_batch in tri orodja za branje zavrnejo argument, ki ga ne deklarirajo, ali argument napačnega tipa, z napako JSON-RPC zaradi neveljavnih parametrov (-32602), še preden se dotaknejo dokumenta, zato se napačno zapisan argument nikoli tiho ne izpusti. Pet orodij seje prezre argumente, ki jih ne poznajo.