[{"data":1,"prerenderedAt":1023},["ShallowReactive",2],{"navigation_docs_hu":3,"-hu-cli-add-db":442,"-hu-cli-add-db-surround":1018},[4,45,60,81,112,129,146,173,197,213,242,280,357,373,385,404,430],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":44},"Kezdő lépések","i-lucide-rocket","\u002Fhu\u002Fgetting-started","hu\u002F1.getting-started",[10,15,20,24,29,34,39],{"title":11,"path":12,"stem":13,"icon":14},"Bevezetés","\u002Fhu\u002Fgetting-started\u002Fintroduction","hu\u002F1.getting-started\u002F1.introduction","i-lucide-house",{"title":16,"path":17,"stem":18,"icon":19},"Laravelből érkezőknek","\u002Fhu\u002Fgetting-started\u002Fcoming-from-laravel","hu\u002F1.getting-started\u002F2.coming-from-laravel","i-lucide-arrow-right-left",{"title":21,"path":22,"stem":23,"icon":19},"Symfonyból érkezőknek","\u002Fhu\u002Fgetting-started\u002Fcoming-from-symfony","hu\u002F1.getting-started\u002F3.coming-from-symfony",{"title":25,"path":26,"stem":27,"icon":28},"Telepítés","\u002Fhu\u002Fgetting-started\u002Finstallation","hu\u002F1.getting-started\u002F4.installation","i-lucide-download",{"title":30,"path":31,"stem":32,"icon":33},"Az első modulod","\u002Fhu\u002Fgetting-started\u002Ffirst-module","hu\u002F1.getting-started\u002F5.first-module","i-lucide-package-plus",{"title":35,"path":36,"stem":37,"icon":38},"Projektstruktúra","\u002Fhu\u002Fgetting-started\u002Fproject-structure","hu\u002F1.getting-started\u002F6.project-structure","i-lucide-folder-tree",{"title":40,"path":41,"stem":42,"icon":43},"A shop mintaalkalmazás","\u002Fhu\u002Fgetting-started\u002Fsample-app","hu\u002F1.getting-started\u002F7.sample-app","i-lucide-shopping-cart",false,{"title":46,"icon":47,"path":48,"stem":49,"children":50,"page":44},"queue","i-lucide-layers","\u002Fhu\u002Fqueue","hu\u002F10.queue",[51,56],{"title":52,"path":53,"stem":54,"icon":55},"Áttekintés","\u002Fhu\u002Fqueue\u002Foverview","hu\u002F10.queue\u002F1.overview","i-lucide-list-ordered",{"title":57,"path":58,"stem":59,"icon":47},"Taskok","\u002Fhu\u002Fqueue\u002Ftasks","hu\u002F10.queue\u002F2.tasks",{"title":61,"icon":62,"path":63,"stem":64,"children":65,"page":44},"events","i-lucide-workflow","\u002Fhu\u002Fevents","hu\u002F11.events",[66,71,76],{"title":67,"path":68,"stem":69,"icon":70},"Események","\u002Fhu\u002Fevents\u002Foverview","hu\u002F11.events\u002F1.overview","i-lucide-radio",{"title":72,"path":73,"stem":74,"icon":75},"Outbox","\u002Fhu\u002Fevents\u002Foutbox","hu\u002F11.events\u002F2.outbox","i-lucide-inbox",{"title":77,"path":78,"stem":79,"icon":80},"Ütemezés","\u002Fhu\u002Fevents\u002Fscheduler","hu\u002F11.events\u002F3.scheduler","i-lucide-calendar-clock",{"title":82,"icon":83,"path":84,"stem":85,"children":86,"page":44},"auth","i-lucide-shield-check","\u002Fhu\u002Fauth","hu\u002F12.auth",[87,92,97,102,107],{"title":88,"path":89,"stem":90,"icon":91},"Autentikáció","\u002Fhu\u002Fauth\u002Foverview","hu\u002F12.auth\u002F1.overview","i-lucide-key-round",{"title":93,"path":94,"stem":95,"icon":96},"RBAC","\u002Fhu\u002Fauth\u002Frbac","hu\u002F12.auth\u002F2.rbac","i-lucide-users",{"title":98,"path":99,"stem":100,"icon":101},"Policy-k","\u002Fhu\u002Fauth\u002Fpolicy","hu\u002F12.auth\u002F3.policy","i-lucide-gavel",{"title":103,"path":104,"stem":105,"icon":106},"Az auth önálló használata","\u002Fhu\u002Fauth\u002Fstandalone","hu\u002F12.auth\u002F4.standalone","i-lucide-plug",{"title":108,"path":109,"stem":110,"icon":111},"Social login goth-tal, önállóan","\u002Fhu\u002Fauth\u002Fsocial-standalone","hu\u002F12.auth\u002F5.social-standalone","i-lucide-log-in",{"title":113,"icon":114,"path":115,"stem":116,"children":117,"page":44},"mail","i-lucide-mail","\u002Fhu\u002Fmail","hu\u002F13.mail",[118,121,125],{"title":52,"path":119,"stem":120,"icon":114},"\u002Fhu\u002Fmail\u002Foverview","hu\u002F13.mail\u002F1.overview",{"title":122,"path":123,"stem":124,"icon":114},"SMTP","\u002Fhu\u002Fmail\u002Fsmtp","hu\u002F13.mail\u002F2.smtp",{"title":126,"path":127,"stem":128,"icon":114},"MJML","\u002Fhu\u002Fmail\u002Fmjml","hu\u002F13.mail\u002F3.mjml",{"title":130,"icon":131,"path":132,"stem":133,"children":134,"page":44},"notify","i-lucide-bell","\u002Fhu\u002Fnotify","hu\u002F14.notify",[135,138,142],{"title":52,"path":136,"stem":137,"icon":131},"\u002Fhu\u002Fnotify\u002Foverview","hu\u002F14.notify\u002F1.overview",{"title":139,"path":140,"stem":141,"icon":131},"Database csatorna","\u002Fhu\u002Fnotify\u002Fdatabase","hu\u002F14.notify\u002F2.database",{"title":143,"path":144,"stem":145,"icon":131},"Broadcast csatorna","\u002Fhu\u002Fnotify\u002Fbroadcast","hu\u002F14.notify\u002F3.broadcast",{"title":147,"icon":148,"path":149,"stem":150,"children":151,"page":44},"storage","i-lucide-hard-drive","\u002Fhu\u002Fstorage","hu\u002F15.storage",[152,155,159,163,168],{"title":52,"path":153,"stem":154,"icon":148},"\u002Fhu\u002Fstorage\u002Foverview","hu\u002F15.storage\u002F1.overview",{"title":156,"path":157,"stem":158},"Disk API","\u002Fhu\u002Fstorage\u002Fdisk-api","hu\u002F15.storage\u002F2.disk-api",{"title":160,"path":161,"stem":162,"icon":148},"Memória és helyi lemez","\u002Fhu\u002Fstorage\u002Flocal","hu\u002F15.storage\u002F3.local",{"title":164,"path":165,"stem":166,"icon":167},"S3","\u002Fhu\u002Fstorage\u002Fs3","hu\u002F15.storage\u002F4.s3","i-lucide-cloud",{"title":169,"path":170,"stem":171,"icon":172},"Tesztelés","\u002Fhu\u002Fstorage\u002Ftesting","hu\u002F15.storage\u002F5.testing","i-lucide-flask-conical",{"title":174,"icon":175,"path":176,"stem":177,"children":178,"page":44},"telemetry","i-lucide-activity","\u002Fhu\u002Ftelemetry","hu\u002F16.telemetry",[179,182,187,192],{"title":52,"path":180,"stem":181,"icon":175},"\u002Fhu\u002Ftelemetry\u002Foverview","hu\u002F16.telemetry\u002F1.overview",{"title":183,"path":184,"stem":185,"icon":186},"Logolás","\u002Fhu\u002Ftelemetry\u002Flogging","hu\u002F16.telemetry\u002F2.logging","i-lucide-scroll-text",{"title":188,"path":189,"stem":190,"icon":191},"OpenTelemetry","\u002Fhu\u002Ftelemetry\u002Fopentelemetry","hu\u002F16.telemetry\u002F3.opentelemetry","i-lucide-radar",{"title":193,"path":194,"stem":195,"icon":196},"Sentry","\u002Fhu\u002Ftelemetry\u002Fsentry","hu\u002F16.telemetry\u002F4.sentry","i-lucide-bug",{"title":198,"icon":199,"path":200,"stem":201,"children":202,"page":44},"Referencia","i-lucide-book-open","\u002Fhu\u002Freference","hu\u002F17.reference",[203,208],{"title":204,"path":205,"stem":206,"icon":207},"Konfiguráció","\u002Fhu\u002Freference\u002Fconfiguration","hu\u002F17.reference\u002F1.configuration","i-lucide-settings",{"title":209,"path":210,"stem":211,"icon":212},"Külső függőségek","\u002Fhu\u002Freference\u002Fdependencies","hu\u002F17.reference\u002F2.dependencies","i-lucide-package",{"title":214,"icon":215,"path":216,"stem":217,"children":218,"page":44},"Koncepciók","i-lucide-lightbulb","\u002Fhu\u002Fconcepts","hu\u002F2.concepts",[219,223,228,232,237],{"title":220,"path":221,"stem":222,"icon":47},"Architektúra","\u002Fhu\u002Fconcepts\u002Farchitecture","hu\u002F2.concepts\u002F1.architecture",{"title":224,"path":225,"stem":226,"icon":227},"Hibamodell","\u002Fhu\u002Fconcepts\u002Ferror-model","hu\u002F2.concepts\u002F2.error-model","i-lucide-shield-alert",{"title":204,"path":229,"stem":230,"icon":231},"\u002Fhu\u002Fconcepts\u002Fconfiguration","hu\u002F2.concepts\u002F3.configuration","i-lucide-settings-2",{"title":233,"path":234,"stem":235,"icon":236},"Codegen pipeline","\u002Fhu\u002Fconcepts\u002Fcodegen-pipeline","hu\u002F2.concepts\u002F4.codegen-pipeline","i-lucide-file-json",{"title":238,"path":239,"stem":240,"icon":241},"Design patternek","\u002Fhu\u002Fconcepts\u002Fdesign-patterns","hu\u002F2.concepts\u002F5.design-patterns","i-lucide-puzzle",{"title":243,"icon":244,"path":245,"stem":246,"children":247,"page":44},"A kit","i-lucide-box","\u002Fhu\u002Fkit","hu\u002F3.kit",[248,252,257,262,267,271,276],{"title":249,"path":250,"stem":251,"icon":244},"A kit áttekintése","\u002Fhu\u002Fkit\u002Foverview","hu\u002F3.kit\u002F1.overview",{"title":253,"path":254,"stem":255,"icon":256},"Alkalmazás-életciklus","\u002Fhu\u002Fkit\u002Fapp","hu\u002F3.kit\u002F2.app","i-lucide-power",{"title":258,"path":259,"stem":260,"icon":261},"Szerver","\u002Fhu\u002Fkit\u002Fserver","hu\u002F3.kit\u002F3.server","i-lucide-server",{"title":263,"path":264,"stem":265,"icon":266},"Worker","\u002Fhu\u002Fkit\u002Fworker","hu\u002F3.kit\u002F4.worker","i-lucide-cog",{"title":268,"path":269,"stem":270,"icon":70},"Realtime","\u002Fhu\u002Fkit\u002Frealtime","hu\u002F3.kit\u002F5.realtime",{"title":272,"path":273,"stem":274,"icon":275},"Migrációk","\u002Fhu\u002Fkit\u002Fmigrations","hu\u002F3.kit\u002F6.migrations","i-lucide-file-stack",{"title":277,"path":278,"stem":279,"icon":111},"Social login","\u002Fhu\u002Fkit\u002Fsocial-login","hu\u002F3.kit\u002F7.social-login",{"title":281,"icon":282,"path":283,"stem":284,"children":285,"page":44},"CLI referencia","i-lucide-terminal","\u002Fhu\u002Fcli","hu\u002F4.cli",[286,289,294,299,304,309,314,319,324,329,334,338,343,348,352],{"title":52,"path":287,"stem":288,"icon":282},"\u002Fhu\u002Fcli\u002Foverview","hu\u002F4.cli\u002F1.overview",{"title":290,"path":291,"stem":292,"icon":293},"add db","\u002Fhu\u002Fcli\u002Fadd-db","hu\u002F4.cli\u002F10.add-db","i-lucide-database-zap",{"title":295,"path":296,"stem":297,"icon":298},"add compose \u002F add docker","\u002Fhu\u002Fcli\u002Fadd-compose","hu\u002F4.cli\u002F11.add-compose","i-lucide-container",{"title":300,"path":301,"stem":302,"icon":303},"add mail","\u002Fhu\u002Fcli\u002Fadd-mail","hu\u002F4.cli\u002F12.add-mail","i-lucide-mail-plus",{"title":305,"path":306,"stem":307,"icon":308},"add notification","\u002Fhu\u002Fcli\u002Fadd-notification","hu\u002F4.cli\u002F13.add-notification","i-lucide-bell-plus",{"title":310,"path":311,"stem":312,"icon":313},"add realtime","\u002Fhu\u002Fcli\u002Fadd-realtime","hu\u002F4.cli\u002F14.add-realtime","i-lucide-radio-tower",{"title":315,"path":316,"stem":317,"icon":318},"add seeder","\u002Fhu\u002Fcli\u002Fadd-seeder","hu\u002F4.cli\u002F15.add-seeder","i-lucide-sprout",{"title":320,"path":321,"stem":322,"icon":323},"new project","\u002Fhu\u002Fcli\u002Fnew-project","hu\u002F4.cli\u002F2.new-project","i-lucide-folder-plus",{"title":325,"path":326,"stem":327,"icon":328},"new module","\u002Fhu\u002Fcli\u002Fnew-module","hu\u002F4.cli\u002F3.new-module","i-lucide-blocks",{"title":330,"path":331,"stem":332,"icon":333},"add surface","\u002Fhu\u002Fcli\u002Fadd-surface","hu\u002F4.cli\u002F4.add-surface","i-lucide-layers-2",{"title":335,"path":336,"stem":337,"icon":244},"add core","\u002Fhu\u002Fcli\u002Fadd-core","hu\u002F4.cli\u002F5.add-core",{"title":339,"path":340,"stem":341,"icon":342},"add handler","\u002Fhu\u002Fcli\u002Fadd-handler","hu\u002F4.cli\u002F6.add-handler","i-lucide-webhook",{"title":344,"path":345,"stem":346,"icon":347},"new migration","\u002Fhu\u002Fcli\u002Fnew-migration","hu\u002F4.cli\u002F7.new-migration","i-lucide-file-plus",{"title":349,"path":350,"stem":351,"icon":266},"worker generátorok","\u002Fhu\u002Fcli\u002Fworker-generators","hu\u002F4.cli\u002F8.worker-generators",{"title":353,"path":354,"stem":355,"icon":356},"upgrade templates","\u002Fhu\u002Fcli\u002Fupgrade-templates","hu\u002F4.cli\u002F9.upgrade-templates","i-lucide-refresh-cw",{"title":358,"icon":227,"path":359,"stem":360,"children":361,"page":44},"errs","\u002Fhu\u002Ferrs","hu\u002F5.errs",[362,365,369],{"title":52,"path":363,"stem":364,"icon":227},"\u002Fhu\u002Ferrs\u002Foverview","hu\u002F5.errs\u002F1.overview",{"title":366,"path":367,"stem":368},"API","\u002Fhu\u002Ferrs\u002Fapi","hu\u002F5.errs\u002F2.api",{"title":370,"path":371,"stem":372,"icon":227},"Integráció","\u002Fhu\u002Ferrs\u002Fintegration","hu\u002F5.errs\u002F3.integration",{"title":374,"icon":231,"path":375,"stem":376,"children":377,"page":44},"envconf","\u002Fhu\u002Fenvconf","hu\u002F6.envconf",[378,381],{"title":52,"path":379,"stem":380,"icon":231},"\u002Fhu\u002Fenvconf\u002Foverview","hu\u002F6.envconf\u002F1.overview",{"title":382,"path":383,"stem":384},"Receptek","\u002Fhu\u002Fenvconf\u002Frecipes","hu\u002F6.envconf\u002F2.recipes",{"title":386,"icon":387,"path":388,"stem":389,"children":390,"page":44},"httperr","i-lucide-globe","\u002Fhu\u002Fhttperr","hu\u002F7.httperr",[391,394,399],{"title":52,"path":392,"stem":393,"icon":387},"\u002Fhu\u002Fhttperr\u002Foverview","hu\u002F7.httperr\u002F1.overview",{"title":395,"path":396,"stem":397,"icon":398},"Hibaválaszok","\u002Fhu\u002Fhttperr\u002Ferror-responses","hu\u002F7.httperr\u002F2.error-responses","i-lucide-octagon-alert",{"title":400,"path":401,"stem":402,"icon":403},"Validáció","\u002Fhu\u002Fhttperr\u002Fvalidation","hu\u002F7.httperr\u002F3.validation","i-lucide-badge-check",{"title":405,"icon":406,"path":407,"stem":408,"children":409,"page":44},"dbx","i-lucide-database","\u002Fhu\u002Fdbx","hu\u002F8.dbx",[410,413,417,421,426],{"title":52,"path":411,"stem":412,"icon":406},"\u002Fhu\u002Fdbx\u002Foverview","hu\u002F8.dbx\u002F1.overview",{"title":414,"path":415,"stem":416,"icon":106},"pgx","\u002Fhu\u002Fdbx\u002Fpg","hu\u002F8.dbx\u002F2.pg",{"title":418,"path":419,"stem":420,"icon":47},"bun","\u002Fhu\u002Fdbx\u002Fbunx","hu\u002F8.dbx\u002F3.bunx",{"title":422,"path":423,"stem":424,"icon":425},"Tranzakciók","\u002Fhu\u002Fdbx\u002Ftransactions","hu\u002F8.dbx\u002F4.transactions","i-lucide-git-merge",{"title":427,"path":428,"stem":429,"icon":318},"Seederek","\u002Fhu\u002Fdbx\u002Fseed","hu\u002F8.dbx\u002F5.seed",{"title":431,"icon":55,"path":432,"stem":433,"children":434,"page":44},"paginate","\u002Fhu\u002Fpaginate","hu\u002F9.paginate",[435,438],{"title":52,"path":436,"stem":437,"icon":55},"\u002Fhu\u002Fpaginate\u002Foverview","hu\u002F9.paginate\u002F1.overview",{"title":439,"path":440,"stem":441,"icon":19},"Cursor-lapozás","\u002Fhu\u002Fpaginate\u002Fcursor","hu\u002F9.paginate\u002F2.cursor",{"id":443,"title":290,"body":444,"description":1011,"extension":1012,"links":1013,"meta":1014,"navigation":1015,"path":291,"seo":1016,"stem":292,"__hash__":1017},"docs_hu\u002Fhu\u002F4.cli\u002F10.add-db.md",{"type":445,"value":446,"toc":1006},"minimark",[447,455,521,563,592,631,654,659,686,757,844,867,898,907,911,936,970,981,985,1002],[448,449,450,451,454],"p",{},"Az ",[452,453,290],"code",{}," egy második, önálló adatbázis-kapcsolatot ad egy modulhoz, a default mellé. Akkor nyúlj hozzá, ha egy modulnak saját poolra van szüksége: külön analytics adatbázisra, egy reporting replikára, vagy bármilyen kapcsolatra, ami nem osztozhat tranzakción a modul default kapcsolatával.",[456,457,462],"pre",{"className":458,"code":459,"language":460,"meta":461,"style":461},"language-sh shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","go tool gpsystem add db \u003Cmodul> \u003Cnév> [--connector pgx|bun]\n","sh","",[452,463,464],{"__ignoreMap":461},[465,466,469,473,477,480,483,486,490,493,497,500,502,505,508,510,513,515,518],"span",{"class":467,"line":468},"line",1,[465,470,472],{"class":471},"sBMFI","go",[465,474,476],{"class":475},"sfazB"," tool",[465,478,479],{"class":475}," gpsystem",[465,481,482],{"class":475}," add",[465,484,485],{"class":475}," db",[465,487,489],{"class":488},"sMK4o"," \u003C",[465,491,492],{"class":475},"modu",[465,494,496],{"class":495},"sTEyZ","l",[465,498,499],{"class":488},">",[465,501,489],{"class":488},[465,503,504],{"class":475},"né",[465,506,507],{"class":495},"v",[465,509,499],{"class":488},[465,511,512],{"class":495}," [--connector ",[465,514,414],{"class":475},[465,516,517],{"class":488},"|",[465,519,520],{"class":471},"bun]\n",[448,522,523,524,527,528,531,532,538,539,541,542,545,546,551,552,527,555,558,559,562],{},"Minden modulnak van már egy default kapcsolata (",[452,525,526],{},"cfg.DB"," \u002F ",[452,529,530],{},"pool","), amit az egész projektre a ",[533,534,535],"a",{"href":321},[452,536,537],{},"new project --db"," választ ki. Az ",[452,540,290],{}," egy modulhoz ad hozzá egy másik, önálló kapcsolatot: saját ",[452,543,544],{},"DB_\u003CNÉV>_*"," configot, saját pgx poolt (opcionálisan ",[533,547,548],{"href":419},[452,549,550],{},"dbx\u002Fbunx","-nal becsomagolva), saját closert, és ",[452,553,554],{},"\u003CNév>DB",[452,556,557],{},"\u003CNév>Transactor"," mezőket a modul ",[452,560,561],{},"Dependencies","-én.",[456,564,566],{"className":458,"code":565,"language":460,"meta":461,"style":461},"go tool gpsystem add db news analytics --connector bun\n",[452,567,568],{"__ignoreMap":461},[465,569,570,572,574,576,578,580,583,586,589],{"class":467,"line":468},[465,571,472],{"class":471},[465,573,476],{"class":475},[465,575,479],{"class":475},[465,577,482],{"class":475},[465,579,485],{"class":475},[465,581,582],{"class":475}," news",[465,584,585],{"class":475}," analytics",[465,587,588],{"class":475}," --connector",[465,590,591],{"class":475}," bun\n",[593,594,595,608],"table",{},[596,597,598],"thead",{},[599,600,601,605],"tr",{},[602,603,604],"th",{},"Flag",[602,606,607],{},"Jelentés",[609,610,611],"tbody",{},[599,612,613,619],{},[614,615,616],"td",{},[452,617,618],{},"--connector",[614,620,621,623,624,626,627,630],{},[452,622,414],{}," vagy ",[452,625,418],{}," ehhez a kapcsolathoz (alapértelmezés: a projekt saját ",[452,628,629],{},"--db"," választása)",[448,632,633,634,638,639,642,643,646,647,650,651,653],{},"A connector a ",[635,636,637],"strong",{},"kapcsolat"," tulajdonsága, nem a projekté: egy modulnak lehet pgx-natív default kapcsolata és emellett bun-alapú ",[452,640,641],{},"analytics"," kapcsolata, vagy fordítva. Ez nem stílus kérdés, hanem kemény határ; lásd a ",[533,644,422],{"href":645},"\u002Fhu\u002Fdbx\u002Ftransactions#egy-transactor-kapcsolatonk%C3%A9nt"," oldalt: egy pgx-natív ",[452,648,649],{},"dbx\u002Fpg"," executor és egy ",[452,652,550],{}," nem oszthat meg egy tranzakciót, így egy kapcsolat connectora hívásonként nem változhat.",[655,656,658],"h2",{"id":657},"mit-generál","Mit generál",[456,660,664],{"className":661,"code":662,"filename":663,"language":472,"meta":461,"style":461},"language-go shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","DBAnalytics dbx.Config `envPrefix:\"DB_ANALYTICS_\"`\n","internal\u002Fplatform\u002Fconfig\u002Fconfig.go",[452,665,666],{"__ignoreMap":461},[465,667,668,671,674,677,680,683],{"class":467,"line":468},[465,669,670],{"class":495},"DBAnalytics dbx",[465,672,673],{"class":488},".",[465,675,676],{"class":495},"Config ",[465,678,679],{"class":488},"`",[465,681,682],{"class":475},"envPrefix:\"DB_ANALYTICS_\"",[465,684,685],{"class":488},"`\n",[456,687,690],{"className":661,"code":688,"filename":689,"language":472,"meta":461,"style":461},"analyticsPool := pg.MustNewPool(ctx, cfg.DBAnalytics)\nanalyticsBun := bunx.Open(analyticsPool)   \u002F\u002F csak --connector bun esetén\n","cmd\u002Fnews\u002Fmain.go",[452,691,692,729],{"__ignoreMap":461},[465,693,694,697,700,703,705,709,712,715,718,721,723,726],{"class":467,"line":468},[465,695,696],{"class":495},"analyticsPool ",[465,698,699],{"class":488},":=",[465,701,702],{"class":495}," pg",[465,704,673],{"class":488},[465,706,708],{"class":707},"s2Zo4","MustNewPool",[465,710,711],{"class":488},"(",[465,713,714],{"class":495},"ctx",[465,716,717],{"class":488},",",[465,719,720],{"class":495}," cfg",[465,722,673],{"class":488},[465,724,725],{"class":495},"DBAnalytics",[465,727,728],{"class":488},")\n",[465,730,732,735,737,740,742,745,747,750,753],{"class":467,"line":731},2,[465,733,734],{"class":495},"analyticsBun ",[465,736,699],{"class":488},[465,738,739],{"class":495}," bunx",[465,741,673],{"class":488},[465,743,744],{"class":707},"Open",[465,746,711],{"class":488},[465,748,749],{"class":495},"analyticsPool",[465,751,752],{"class":488},")",[465,754,756],{"class":755},"sHwdD","   \u002F\u002F csak --connector bun esetén\n",[456,758,761],{"className":661,"code":759,"filename":760,"language":472,"meta":461,"style":461},"type Dependencies struct {\n    DB                  *pg.DB\n    Transactor          dbx.Transactor\n    AnalyticsDB         *bun.DB\n    AnalyticsTransactor dbx.Transactor\n    \u002F\u002F gpsystem:dependencies\n}\n","internal\u002Fmodules\u002Fnews\u002Fregister.go",[452,762,763,777,793,806,820,832,838],{"__ignoreMap":461},[465,764,765,768,771,774],{"class":467,"line":468},[465,766,767],{"class":488},"type",[465,769,770],{"class":471}," Dependencies",[465,772,773],{"class":488}," struct",[465,775,776],{"class":488}," {\n",[465,778,779,782,785,788,790],{"class":467,"line":731},[465,780,781],{"class":495},"    DB                  ",[465,783,784],{"class":488},"*",[465,786,787],{"class":471},"pg",[465,789,673],{"class":488},[465,791,792],{"class":471},"DB\n",[465,794,796,799,801,803],{"class":467,"line":795},3,[465,797,798],{"class":495},"    Transactor          ",[465,800,405],{"class":471},[465,802,673],{"class":488},[465,804,805],{"class":471},"Transactor\n",[465,807,809,812,814,816,818],{"class":467,"line":808},4,[465,810,811],{"class":495},"    AnalyticsDB         ",[465,813,784],{"class":488},[465,815,418],{"class":471},[465,817,673],{"class":488},[465,819,792],{"class":471},[465,821,823,826,828,830],{"class":467,"line":822},5,[465,824,825],{"class":495},"    AnalyticsTransactor ",[465,827,405],{"class":471},[465,829,673],{"class":488},[465,831,805],{"class":471},[465,833,835],{"class":467,"line":834},6,[465,836,837],{"class":755},"    \u002F\u002F gpsystem:dependencies\n",[465,839,841],{"class":467,"line":840},7,[465,842,843],{"class":488},"}\n",[448,845,846,847,850,851,854,855,859,860,863,864,866],{},"A pool closere mellé egy másik is regisztrálódik (",[452,848,849],{},"analytics-pgxpool",", és bun connector esetén ",[452,852,853],{},"analytics-bun",", mivel a bun closer a pool utánra kerül, így a ",[533,856,858],{"href":857},"\u002Fhu\u002Fconcepts\u002Farchitecture#graceful-shutdown","graceful shutdown"," LIFO sorrendje a bun handle-t zárja a pool előtt). Ha a ",[452,861,862],{},"cmd\u002Fworker\u002Fmain.go"," már létezik, ugyanez a pool\u002Fdeps\u002Fcloser bekötés odakerül, így a listenerek és jobok is látják a kapcsolatot ugyanazon a ",[452,865,561],{}," structon.",[448,868,869,870,873,874,877,878,881,882,885,886,889,890,893,894,673],{},"A ",[452,871,872],{},".env.example"," kap egy ",[452,875,876],{},"DB_ANALYTICS_*"," blokkot, amely a default kapcsolattal azonos lokális Postgresre mutat. Helyi fejlesztéshez irányítsd át egy másik instance-ra. A ",[452,879,880],{},"DB_ANALYTICS_USER",", ",[452,883,884],{},"DB_ANALYTICS_PASSWORD"," és ",[452,887,888],{},"DB_ANALYTICS_NAME"," ",[635,891,892],{},"kötelező",": hiányuk esetén a process már indulásnál elhal, nem az első lekérdezésnél; lásd a ",[533,895,897],{"href":896},"\u002Fhu\u002Freference\u002Fconfiguration#neves%C3%ADtett-kapcsolatok","konfigurációs referenciát",[899,900,869,901,906],"warning",{},[533,902,903],{"href":273},[452,904,905],{},"cmd\u002Fmigrate"," mindig csak a projekt default kapcsolatát célozza. Egy nevesített kapcsolat sémáját a generált migrációs runner nem kezeli.",[655,908,910],{"id":909},"a-modul-repository-bekötése","A modul-repository bekötése",[448,912,450,913,915,916,918,919,922,923,929,930,935],{},[452,914,290],{}," önmagában csak elérhetővé teszi a kapcsolatot a ",[452,917,561],{},"-en; a modul repository-jához nem nyúl. A modul közös ",[452,920,921],{},"repository\u002F","-vázát az ",[533,924,926],{"href":925},"\u002Fhu\u002Fcli\u002Fadd-surface#repository-bek%C3%B6t%C3%A9se-neves%C3%ADtett-kapcsolathoz",[452,927,928],{},"add surface --db"," (vagy az ",[533,931,932],{"href":336},[452,933,934],{},"add core --db",", ugyanígy egy meglévő modul repository-jához) köti hozzá:",[456,937,939],{"className":458,"code":938,"language":460,"meta":461,"style":461},"go tool gpsystem add surface news reports --db analytics\n# -> internal\u002Fmodules\u002Fnews\u002Frepository\u002Fanalytics\u002Fdoc.go\n",[452,940,941,965],{"__ignoreMap":461},[465,942,943,945,947,949,951,954,956,959,962],{"class":467,"line":468},[465,944,472],{"class":471},[465,946,476],{"class":475},[465,948,479],{"class":475},[465,950,482],{"class":475},[465,952,953],{"class":475}," surface",[465,955,582],{"class":475},[465,957,958],{"class":475}," reports",[465,960,961],{"class":475}," --db",[465,963,964],{"class":475}," analytics\n",[465,966,967],{"class":467,"line":731},[465,968,969],{"class":755},"# -> internal\u002Fmodules\u002Fnews\u002Frepository\u002Fanalytics\u002Fdoc.go\n",[448,971,869,972,974,975,977,978,980],{},[452,973,629],{}," nélkül a modul megtartja a flat ",[452,976,921],{}," mappát, a default kapcsolathoz kötve; semmi nem változik azokban a projektekben, amelyek sosem hívják az ",[452,979,290],{},"-t.",[655,982,984],{"id":983},"hibaelhárítás-hiányzó-anchorok","Hibaelhárítás: hiányzó anchorok",[448,986,450,987,989,990,993,994,997,998,1001],{},[452,988,290],{}," írás előtt ellenőrzi, hogy a ",[452,991,992],{},"cmd\u002F\u003Cmodul>\u002Fmain.go","-ban megvan-e a ",[452,995,996],{},"gpsystem:pools"," és a ",[452,999,1000],{},"gpsystem:closers"," anchor. Ha valamelyik anchor-komment hiányzik, a parancs megáll, és kiírja a pontos két kommentsort, amit kézzel be kell szúrni (a helyükért lásd egy frissen generált projektet); a beszúrás után futtasd újra.",[1003,1004,1005],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}",{"title":461,"searchDepth":731,"depth":731,"links":1007},[1008,1009,1010],{"id":657,"depth":731,"text":658},{"id":909,"depth":731,"text":910},{"id":983,"depth":731,"text":984},"Nevesített adatbázis-kapcsolat hozzáadása egy modulhoz, saját poollal és connectorral.","md",null,{},{"icon":293},{"title":290,"description":1011},"F7YK_v_HKPf-zyyMIQvw6uLFZpX9J-WJxTa4XLatDRo",[1019,1021],{"title":52,"path":287,"stem":288,"description":1020,"icon":282,"children":-1},"Hogyan működik a gpsystem CLI: tool directive, biztonsági szabályok, anchorok, manifest.",{"title":295,"path":296,"stem":297,"description":1022,"icon":298,"children":-1},"A compose.yml, illetve csak a Dockerfile\u002F.dockerignore önálló (újra)generálása egy meglévő projektbe.",1785445895845]