2026-02-13 14:01:00 -07:00
<!doctype html>
< html lang = "en" class = "no-js" >
< head >
< meta charset = "utf-8" >
< meta name = "viewport" content = "width=device-width,initial-scale=1" >
< link rel = "prev" href = "../Carrier_Service/" >
< link rel = "next" href = "../Events/" >
< link rel = "icon" href = "../../assets/external/postalpoint.app/images/favicon-voxel.png" >
< meta name = "generator" content = "mkdocs-1.6.1, mkdocs-material-9.7.1" >
< title > Database Drivers - PostalPoint Plugin Development< / title >
< link rel = "stylesheet" href = "../../assets/stylesheets/main.484c7ddc.min.css" >
< link rel = "stylesheet" href = "../../assets/stylesheets/palette.ab4e12ef.min.css" >
< link rel = "stylesheet" href = "../../assets/external/fonts.googleapis.com/css.49ea35f2.css" >
< style > : root { --md-text-font : "Roboto" ; --md-code-font : "Roboto Mono" } < / style >
< link rel = "stylesheet" href = "../../assets/styles.css" >
< script > _ _md _scope = new URL ( "../.." , location ) , _ _md _hash = e => [ ... e ] . reduce ( ( ( e , _ ) => ( e << 5 ) - e + _ . charCodeAt ( 0 ) ) , 0 ) , _ _md _get = ( e , _ = localStorage , t = _ _md _scope ) => JSON . parse ( _ . getItem ( t . pathname + "." + e ) ) , _ _md _set = ( e , _ , t = localStorage , a = _ _md _scope ) => { try { t . setItem ( a . pathname + "." + e , JSON . stringify ( _ ) ) } catch ( e ) { } } < / script >
<!-- Matomo -->
< script >
var _paq = window._paq = window._paq || [];
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="https://analytics.netsyms.net/";
_paq.push(['setTrackerUrl', u+'matomo.php']);
_paq.push(['setSiteId', '57']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
})();
< / script >
<!-- End Matomo Code -->
< script > "undefined" != typeof _ _md _analytics && _ _md _analytics ( ) < / script >
< / head >
< body dir = "ltr" data-md-color-scheme = "default" data-md-color-primary = "blue" data-md-color-accent = "indigo" >
< input class = "md-toggle" data-md-toggle = "drawer" type = "checkbox" id = "__drawer" autocomplete = "off" >
< input class = "md-toggle" data-md-toggle = "search" type = "checkbox" id = "__search" autocomplete = "off" >
< label class = "md-overlay" for = "__drawer" > < / label >
< div data-md-component = "skip" >
< a href = "#database-drivers" class = "md-skip" >
Skip to content
< / a >
< / div >
< div data-md-component = "announce" >
< / div >
2026-02-13 14:02:44 -07:00
< div data-md-color-scheme = "default" data-md-component = "outdated" hidden >
< / div >
2026-02-13 14:01:00 -07:00
< header class = "md-header md-header--shadow" data-md-component = "header" >
< nav class = "md-header__inner md-grid" aria-label = "Header" >
< a href = "https://postalpoint.app" title = "PostalPoint Plugin Development" class = "md-header__button md-logo" aria-label = "PostalPoint Plugin Development" data-md-component = "logo" >
< img src = "../../assets/logo.svg" alt = "logo" >
< / a >
< label class = "md-header__button md-icon" for = "__drawer" >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 24 24" > < path d = "M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z" / > < / svg >
< / label >
< div class = "md-header__title" data-md-component = "header-title" >
< div class = "md-header__ellipsis" >
< div class = "md-header__topic" >
< span class = "md-ellipsis" >
PostalPoint Plugin Development
< / span >
< / div >
< div class = "md-header__topic" data-md-component = "header-topic" >
< span class = "md-ellipsis" >
Database Drivers
< / span >
< / div >
< / div >
< / div >
< label class = "md-header__button md-icon" for = "__search" >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 24 24" > < path d = "M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5" / > < / svg >
< / label >
< div class = "md-search" data-md-component = "search" role = "dialog" >
< label class = "md-search__overlay" for = "__search" > < / label >
< div class = "md-search__inner" role = "search" >
< form class = "md-search__form" name = "search" >
< input type = "text" class = "md-search__input" name = "query" aria-label = "Search" placeholder = "Search" autocapitalize = "off" autocorrect = "off" autocomplete = "off" spellcheck = "false" data-md-component = "search-query" required >
< label class = "md-search__icon md-icon" for = "__search" >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 24 24" > < path d = "M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5" / > < / svg >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 24 24" > < path d = "M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z" / > < / svg >
< / label >
< nav class = "md-search__options" aria-label = "Search" >
< button type = "reset" class = "md-search__icon md-icon" title = "Clear" aria-label = "Clear" tabindex = "-1" >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 24 24" > < path d = "M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z" / > < / svg >
< / button >
< / nav >
< / form >
< div class = "md-search__output" >
< div class = "md-search__scrollwrap" tabindex = "0" data-md-scrollfix >
< div class = "md-search-result" data-md-component = "search-result" >
< div class = "md-search-result__meta" >
Initializing search
< / div >
< ol class = "md-search-result__list" role = "presentation" > < / ol >
< / div >
< / div >
< / div >
< / div >
< / div >
< / nav >
< / header >
< div class = "md-container" data-md-component = "container" >
< main class = "md-main" data-md-component = "main" >
< div class = "md-main__inner md-grid" >
< div class = "md-sidebar md-sidebar--primary" data-md-component = "sidebar" data-md-type = "navigation" >
< div class = "md-sidebar__scrollwrap" >
< div class = "md-sidebar__inner" >
< nav class = "md-nav md-nav--primary" aria-label = "Navigation" data-md-level = "0" >
< label class = "md-nav__title" for = "__drawer" >
< a href = "https://postalpoint.app" title = "PostalPoint Plugin Development" class = "md-nav__button md-logo" aria-label = "PostalPoint Plugin Development" data-md-component = "logo" >
< img src = "../../assets/logo.svg" alt = "logo" >
< / a >
PostalPoint Plugin Development
< / label >
< ul class = "md-nav__list" data-md-scrollfix >
< li class = "md-nav__item" >
< a href = "../.." class = "md-nav__link" >
< span class = "md-ellipsis" >
Overview
< / span >
< / a >
< / li >
< li class = "md-nav__item md-nav__item--active md-nav__item--nested" >
< input class = "md-nav__toggle md-toggle " type = "checkbox" id = "__nav_2" checked >
< label class = "md-nav__link" for = "__nav_2" id = "__nav_2_label" tabindex = "0" >
< span class = "md-ellipsis" >
Docs
< / span >
< span class = "md-nav__icon md-icon" > < / span >
< / label >
< nav class = "md-nav" data-md-level = "1" aria-labelledby = "__nav_2_label" aria-expanded = "true" >
< label class = "md-nav__title" for = "__nav_2" >
< span class = "md-nav__icon md-icon" > < / span >
Docs
< / label >
< ul class = "md-nav__list" data-md-scrollfix >
< li class = "md-nav__item" >
< a href = "../Address/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Address object
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../Carrier_Service/" class = "md-nav__link" >
< span class = "md-ellipsis" >
getCarrierName and getServiceName
< / span >
< / a >
< / li >
< li class = "md-nav__item md-nav__item--active" >
< input class = "md-nav__toggle md-toggle" type = "checkbox" id = "__toc" >
< label class = "md-nav__link md-nav__link--active" for = "__toc" >
< span class = "md-ellipsis" >
Database Drivers
< / span >
< span class = "md-nav__icon md-icon" > < / span >
< / label >
< a href = "./" class = "md-nav__link md-nav__link--active" >
< span class = "md-ellipsis" >
Database Drivers
< / span >
< / a >
< nav class = "md-nav md-nav--secondary" aria-label = "Table of contents" >
< label class = "md-nav__title" for = "__toc" >
< span class = "md-nav__icon md-icon" > < / span >
Table of contents
< / label >
< ul class = "md-nav__list" data-md-component = "toc" data-md-scrollfix >
< li class = "md-nav__item" >
< a href = "#sqlite" class = "md-nav__link" >
< span class = "md-ellipsis" >
SQLite
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#remote-hostmaster" class = "md-nav__link" >
< span class = "md-ellipsis" >
Remote host/master
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#mariadbmysql" class = "md-nav__link" >
< span class = "md-ellipsis" >
MariaDB/MySQL
< / span >
< / a >
< / li >
< / ul >
< / nav >
< / li >
< li class = "md-nav__item" >
< a href = "../Events/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Event Bus
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../FormPS1583/" class = "md-nav__link" >
< span class = "md-ellipsis" >
FormPS1583 object
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../Parcel/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Parcel/Package Object
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../Receipt/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Receipt Objects
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../ReceiptPrinter/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Receipt Printer driver functions
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../TrackingBarcode/" class = "md-nav__link" >
< span class = "md-ellipsis" >
TrackingBarcode class
< / span >
< / a >
< / li >
< / ul >
< / nav >
< / li >
< li class = "md-nav__item md-nav__item--nested" >
< input class = "md-nav__toggle md-toggle " type = "checkbox" id = "__nav_3" >
< label class = "md-nav__link" for = "__nav_3" id = "__nav_3_label" tabindex = "0" >
< span class = "md-ellipsis" >
Examples
< / span >
< span class = "md-nav__icon md-icon" > < / span >
< / label >
< nav class = "md-nav" data-md-level = "1" aria-labelledby = "__nav_3_label" aria-expanded = "false" >
< label class = "md-nav__title" for = "__nav_3" >
< span class = "md-nav__icon md-icon" > < / span >
Examples
< / label >
< ul class = "md-nav__list" data-md-scrollfix >
< li class = "md-nav__item" >
< a href = "../../Examples/01Minimal/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Minimal Plugin
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../Examples/02Basic/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Basic Plugin
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../Examples/03Shipping/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Shipping Plugin
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../Examples/04CardProcessor/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Card Payments
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../Examples/05CryptoProcessor/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Cryptocurrency Payments
< / span >
< / a >
< / li >
< / ul >
< / nav >
< / li >
< li class = "md-nav__item md-nav__item--nested" >
< input class = "md-nav__toggle md-toggle " type = "checkbox" id = "__nav_4" >
< label class = "md-nav__link" for = "__nav_4" id = "__nav_4_label" tabindex = "0" >
< span class = "md-ellipsis" >
Plugin API
< / span >
< span class = "md-nav__icon md-icon" > < / span >
< / label >
< nav class = "md-nav" data-md-level = "1" aria-labelledby = "__nav_4_label" aria-expanded = "false" >
< label class = "md-nav__title" for = "__nav_4" >
< span class = "md-nav__icon md-icon" > < / span >
Plugin API
< / label >
< ul class = "md-nav__list" data-md-scrollfix >
< li class = "md-nav__item" >
< a href = "../../Plugin%20API/barcode/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Barcode
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../Plugin%20API/database/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Database
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../Plugin%20API/fs/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Fs
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../Plugin%20API/global%20functions/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Global functions
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../Plugin%20API/graphics/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Graphics
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../Plugin%20API/i18n/" class = "md-nav__link" >
< span class = "md-ellipsis" >
I18n
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../Plugin%20API/kiosk/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Kiosk
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../Plugin%20API/mailboxes/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Mailboxes
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../Plugin%20API/pos/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Pos
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../Plugin%20API/print/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Print
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../Plugin%20API/reports/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Reports
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../Plugin%20API/settings/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Settings
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../Plugin%20API/shipping/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Shipping
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../Plugin%20API/storage/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Storage
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../Plugin%20API/ui/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Ui
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../Plugin%20API/user/" class = "md-nav__link" >
< span class = "md-ellipsis" >
User
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../Plugin%20API/util/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Util
< / span >
< / a >
< / li >
< / ul >
< / nav >
< / li >
< / ul >
< / nav >
< / div >
< / div >
< / div >
< div class = "md-sidebar md-sidebar--secondary" data-md-component = "sidebar" data-md-type = "toc" >
< div class = "md-sidebar__scrollwrap" >
< div class = "md-sidebar__inner" >
< nav class = "md-nav md-nav--secondary" aria-label = "Table of contents" >
< label class = "md-nav__title" for = "__toc" >
< span class = "md-nav__icon md-icon" > < / span >
Table of contents
< / label >
< ul class = "md-nav__list" data-md-component = "toc" data-md-scrollfix >
< li class = "md-nav__item" >
< a href = "#sqlite" class = "md-nav__link" >
< span class = "md-ellipsis" >
SQLite
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#remote-hostmaster" class = "md-nav__link" >
< span class = "md-ellipsis" >
Remote host/master
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#mariadbmysql" class = "md-nav__link" >
< span class = "md-ellipsis" >
MariaDB/MySQL
< / span >
< / a >
< / li >
< / ul >
< / nav >
< / div >
< / div >
< / div >
< div class = "md-content" data-md-component = "content" >
< article class = "md-content__inner md-typeset" >
< h1 id = "database-drivers" > Database Drivers< / h1 >
< p > < code > global.apis.database.getConnection()< / code > returns one of these, depending on which database is in use.< / p >
< h2 id = "sqlite" > SQLite< / h2 >
< div class = "language-javascript highlight" > < pre > < span > < / span > < code > < span id = "__span-0-1" > < a id = "__codelineno-0-1" name = "__codelineno-0-1" href = "#__codelineno-0-1" > < / a > < span class = "k" > export< / span > < span class = "w" > < / span > < span class = "kd" > class< / span > < span class = "w" > < / span > < span class = "nx" > SQLiteAdapter< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< / span > < span id = "__span-0-2" > < a id = "__codelineno-0-2" name = "__codelineno-0-2" href = "#__codelineno-0-2" > < / a > < span class = "w" > < / span > < span class = "kr" > constructor< / span > < span class = "p" > (< / span > < span class = "nx" > db< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< / span > < span id = "__span-0-3" > < a id = "__codelineno-0-3" name = "__codelineno-0-3" href = "#__codelineno-0-3" > < / a > < span class = "w" > < / span > < span class = "k" > this< / span > < span class = "p" > .< / span > < span class = "nx" > type< / span > < span class = "w" > < / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "s2" > " sqlite" < / span > < span class = "p" > ;< / span >
< / span > < span id = "__span-0-4" > < a id = "__codelineno-0-4" name = "__codelineno-0-4" href = "#__codelineno-0-4" > < / a > < span class = "w" > < / span > < span class = "k" > this< / span > < span class = "p" > .< / span > < span class = "nx" > db< / span > < span class = "w" > < / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "nx" > db< / span > < span class = "p" > ;< / span >
< / span > < span id = "__span-0-5" > < a id = "__codelineno-0-5" name = "__codelineno-0-5" href = "#__codelineno-0-5" > < / a > < span class = "w" > < / span > < span class = "p" > }< / span >
< / span > < span id = "__span-0-6" > < a id = "__codelineno-0-6" name = "__codelineno-0-6" href = "#__codelineno-0-6" > < / a >
< / span > < span id = "__span-0-7" > < a id = "__codelineno-0-7" name = "__codelineno-0-7" href = "#__codelineno-0-7" > < / a > < span class = "w" > < / span > < span class = "k" > async< / span > < span class = "w" > < / span > < span class = "nx" > query< / span > < span class = "p" > (< / span > < span class = "nx" > query< / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "nx" > replace< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< / span > < span id = "__span-0-8" > < a id = "__codelineno-0-8" name = "__codelineno-0-8" href = "#__codelineno-0-8" > < / a > < span class = "w" > < / span > < span class = "k" > if< / span > < span class = "w" > < / span > < span class = "p" > (< / span > < span class = "nb" > global< / span > < span class = "p" > .< / span > < span class = "nx" > devMode< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< / span > < span id = "__span-0-9" > < a id = "__codelineno-0-9" name = "__codelineno-0-9" href = "#__codelineno-0-9" > < / a > < span class = "w" > < / span > < span class = "nx" > console< / span > < span class = "p" > .< / span > < span class = "nx" > info< / span > < span class = "p" > (< / span > < span class = "nx" > query< / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "nx" > replace< / span > < span class = "p" > );< / span >
< / span > < span id = "__span-0-10" > < a id = "__codelineno-0-10" name = "__codelineno-0-10" href = "#__codelineno-0-10" > < / a > < span class = "w" > < / span > < span class = "p" > }< / span >
< / span > < span id = "__span-0-11" > < a id = "__codelineno-0-11" name = "__codelineno-0-11" href = "#__codelineno-0-11" > < / a > < span class = "w" > < / span > < span class = "k" > return< / span > < span class = "w" > < / span > < span class = "k" > await< / span > < span class = "w" > < / span > < span class = "k" > this< / span > < span class = "p" > .< / span > < span class = "nx" > db< / span > < span class = "p" > .< / span > < span class = "nx" > all< / span > < span class = "p" > (< / span > < span class = "nx" > query< / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "nx" > replace< / span > < span class = "p" > );< / span >
< / span > < span id = "__span-0-12" > < a id = "__codelineno-0-12" name = "__codelineno-0-12" href = "#__codelineno-0-12" > < / a > < span class = "w" > < / span > < span class = "p" > }< / span >
< / span > < span id = "__span-0-13" > < a id = "__codelineno-0-13" name = "__codelineno-0-13" href = "#__codelineno-0-13" > < / a >
< / span > < span id = "__span-0-14" > < a id = "__codelineno-0-14" name = "__codelineno-0-14" href = "#__codelineno-0-14" > < / a > < span class = "w" > < / span > < span class = "k" > async< / span > < span class = "w" > < / span > < span class = "nx" > run< / span > < span class = "p" > (< / span > < span class = "nx" > statement< / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "nx" > replace< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< / span > < span id = "__span-0-15" > < a id = "__codelineno-0-15" name = "__codelineno-0-15" href = "#__codelineno-0-15" > < / a > < span class = "w" > < / span > < span class = "k" > if< / span > < span class = "w" > < / span > < span class = "p" > (< / span > < span class = "nb" > global< / span > < span class = "p" > .< / span > < span class = "nx" > devMode< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< / span > < span id = "__span-0-16" > < a id = "__codelineno-0-16" name = "__codelineno-0-16" href = "#__codelineno-0-16" > < / a > < span class = "w" > < / span > < span class = "nx" > console< / span > < span class = "p" > .< / span > < span class = "nx" > info< / span > < span class = "p" > (< / span > < span class = "nx" > statement< / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "nx" > replace< / span > < span class = "p" > );< / span >
< / span > < span id = "__span-0-17" > < a id = "__codelineno-0-17" name = "__codelineno-0-17" href = "#__codelineno-0-17" > < / a > < span class = "w" > < / span > < span class = "p" > }< / span >
< / span > < span id = "__span-0-18" > < a id = "__codelineno-0-18" name = "__codelineno-0-18" href = "#__codelineno-0-18" > < / a > < span class = "w" > < / span > < span class = "k" > return< / span > < span class = "w" > < / span > < span class = "k" > await< / span > < span class = "w" > < / span > < span class = "k" > this< / span > < span class = "p" > .< / span > < span class = "nx" > db< / span > < span class = "p" > .< / span > < span class = "nx" > run< / span > < span class = "p" > (< / span > < span class = "nx" > statement< / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "nx" > replace< / span > < span class = "p" > );< / span >
< / span > < span id = "__span-0-19" > < a id = "__codelineno-0-19" name = "__codelineno-0-19" href = "#__codelineno-0-19" > < / a > < span class = "w" > < / span > < span class = "p" > }< / span >
< / span > < span id = "__span-0-20" > < a id = "__codelineno-0-20" name = "__codelineno-0-20" href = "#__codelineno-0-20" > < / a >
< / span > < span id = "__span-0-21" > < a id = "__codelineno-0-21" name = "__codelineno-0-21" href = "#__codelineno-0-21" > < / a > < span class = "w" > < / span > < span class = "k" > async< / span > < span class = "w" > < / span > < span class = "nx" > exec< / span > < span class = "p" > (< / span > < span class = "nx" > statement< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< / span > < span id = "__span-0-22" > < a id = "__codelineno-0-22" name = "__codelineno-0-22" href = "#__codelineno-0-22" > < / a > < span class = "w" > < / span > < span class = "k" > if< / span > < span class = "w" > < / span > < span class = "p" > (< / span > < span class = "nb" > global< / span > < span class = "p" > .< / span > < span class = "nx" > devMode< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< / span > < span id = "__span-0-23" > < a id = "__codelineno-0-23" name = "__codelineno-0-23" href = "#__codelineno-0-23" > < / a > < span class = "w" > < / span > < span class = "nx" > console< / span > < span class = "p" > .< / span > < span class = "nx" > info< / span > < span class = "p" > (< / span > < span class = "nx" > statement< / span > < span class = "p" > );< / span >
< / span > < span id = "__span-0-24" > < a id = "__codelineno-0-24" name = "__codelineno-0-24" href = "#__codelineno-0-24" > < / a > < span class = "w" > < / span > < span class = "p" > }< / span >
< / span > < span id = "__span-0-25" > < a id = "__codelineno-0-25" name = "__codelineno-0-25" href = "#__codelineno-0-25" > < / a > < span class = "w" > < / span > < span class = "k" > return< / span > < span class = "w" > < / span > < span class = "k" > await< / span > < span class = "w" > < / span > < span class = "k" > this< / span > < span class = "p" > .< / span > < span class = "nx" > db< / span > < span class = "p" > .< / span > < span class = "nx" > exec< / span > < span class = "p" > (< / span > < span class = "nx" > statement< / span > < span class = "p" > );< / span >
< / span > < span id = "__span-0-26" > < a id = "__codelineno-0-26" name = "__codelineno-0-26" href = "#__codelineno-0-26" > < / a > < span class = "w" > < / span > < span class = "p" > }< / span >
< / span > < span id = "__span-0-27" > < a id = "__codelineno-0-27" name = "__codelineno-0-27" href = "#__codelineno-0-27" > < / a >
< / span > < span id = "__span-0-28" > < a id = "__codelineno-0-28" name = "__codelineno-0-28" href = "#__codelineno-0-28" > < / a > < span class = "w" > < / span > < span class = "k" > async< / span > < span class = "w" > < / span > < span class = "nx" > exists< / span > < span class = "p" > (< / span > < span class = "nx" > table< / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "nx" > where< / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "nx" > replace< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< / span > < span id = "__span-0-29" > < a id = "__codelineno-0-29" name = "__codelineno-0-29" href = "#__codelineno-0-29" > < / a > < span class = "w" > < / span > < span class = "kd" > const< / span > < span class = "w" > < / span > < span class = "nx" > q< / span > < span class = "w" > < / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "k" > await< / span > < span class = "w" > < / span > < span class = "k" > this< / span > < span class = "p" > .< / span > < span class = "nx" > db< / span > < span class = "p" > .< / span > < span class = "nx" > all< / span > < span class = "p" > (< / span > < span class = "s2" > " SELECT EXISTS(SELECT 1 FROM " < / span > < span class = "w" > < / span > < span class = "o" > +< / span > < span class = "w" > < / span > < span class = "nx" > table< / span > < span class = "w" > < / span > < span class = "o" > +< / span > < span class = "w" > < / span > < span class = "s2" > " WHERE " < / span > < span class = "w" > < / span > < span class = "o" > +< / span > < span class = "w" > < / span > < span class = "nx" > where< / span > < span class = "w" > < / span > < span class = "o" > +< / span > < span class = "w" > < / span > < span class = "s2" > " ) as n" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "nx" > replace< / span > < span class = "p" > );< / span >
< / span > < span id = "__span-0-30" > < a id = "__codelineno-0-30" name = "__codelineno-0-30" href = "#__codelineno-0-30" > < / a > < span class = "w" > < / span > < span class = "k" > if< / span > < span class = "w" > < / span > < span class = "p" > (< / span > < span class = "nx" > q< / span > < span class = "p" > [< / span > < span class = "mf" > 0< / span > < span class = "p" > ].< / span > < span class = "nx" > n< / span > < span class = "w" > < / span > < span class = "o" > > < / span > < span class = "w" > < / span > < span class = "mf" > 0< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< / span > < span id = "__span-0-31" > < a id = "__codelineno-0-31" name = "__codelineno-0-31" href = "#__codelineno-0-31" > < / a > < span class = "w" > < / span > < span class = "k" > return< / span > < span class = "w" > < / span > < span class = "kc" > true< / span > < span class = "p" > ;< / span >
< / span > < span id = "__span-0-32" > < a id = "__codelineno-0-32" name = "__codelineno-0-32" href = "#__codelineno-0-32" > < / a > < span class = "w" > < / span > < span class = "p" > }< / span >
< / span > < span id = "__span-0-33" > < a id = "__codelineno-0-33" name = "__codelineno-0-33" href = "#__codelineno-0-33" > < / a > < span class = "w" > < / span > < span class = "k" > return< / span > < span class = "w" > < / span > < span class = "kc" > false< / span > < span class = "p" > ;< / span >
< / span > < span id = "__span-0-34" > < a id = "__codelineno-0-34" name = "__codelineno-0-34" href = "#__codelineno-0-34" > < / a > < span class = "w" > < / span > < span class = "p" > }< / span >
< / span > < span id = "__span-0-35" > < a id = "__codelineno-0-35" name = "__codelineno-0-35" href = "#__codelineno-0-35" > < / a >
< / span > < span id = "__span-0-36" > < a id = "__codelineno-0-36" name = "__codelineno-0-36" href = "#__codelineno-0-36" > < / a > < span class = "w" > < / span > < span class = "k" > async< / span > < span class = "w" > < / span > < span class = "nx" > close< / span > < span class = "p" > ()< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< / span > < span id = "__span-0-37" > < a id = "__codelineno-0-37" name = "__codelineno-0-37" href = "#__codelineno-0-37" > < / a >
< / span > < span id = "__span-0-38" > < a id = "__codelineno-0-38" name = "__codelineno-0-38" href = "#__codelineno-0-38" > < / a > < span class = "w" > < / span > < span class = "p" > }< / span >
< / span > < span id = "__span-0-39" > < a id = "__codelineno-0-39" name = "__codelineno-0-39" href = "#__codelineno-0-39" > < / a >
< / span > < span id = "__span-0-40" > < a id = "__codelineno-0-40" name = "__codelineno-0-40" href = "#__codelineno-0-40" > < / a > < span class = "w" > < / span > < span class = "k" > async< / span > < span class = "w" > < / span > < span class = "nx" > tableExists< / span > < span class = "p" > (< / span > < span class = "nx" > table< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< / span > < span id = "__span-0-41" > < a id = "__codelineno-0-41" name = "__codelineno-0-41" href = "#__codelineno-0-41" > < / a > < span class = "w" > < / span > < span class = "k" > return< / span > < span class = "w" > < / span > < span class = "p" > (< / span > < span class = "k" > await< / span > < span class = "w" > < / span > < span class = "k" > this< / span > < span class = "p" > .< / span > < span class = "nx" > db< / span > < span class = "p" > .< / span > < span class = "nx" > get< / span > < span class = "p" > (< / span > < span class = "sb" > `SELECT count(name) AS cnt FROM sqlite_master WHERE type=' table' AND name=?`< / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "nx" > table< / span > < span class = "p" > )).< / span > < span class = "nx" > cnt< / span > < span class = "w" > < / span > < span class = "o" > > < / span > < span class = "w" > < / span > < span class = "mf" > 0< / span > < span class = "p" > ;< / span >
< / span > < span id = "__span-0-42" > < a id = "__codelineno-0-42" name = "__codelineno-0-42" href = "#__codelineno-0-42" > < / a > < span class = "w" > < / span > < span class = "p" > }< / span >
< / span > < span id = "__span-0-43" > < a id = "__codelineno-0-43" name = "__codelineno-0-43" href = "#__codelineno-0-43" > < / a >
< / span > < span id = "__span-0-44" > < a id = "__codelineno-0-44" name = "__codelineno-0-44" href = "#__codelineno-0-44" > < / a > < span class = "w" > < / span > < span class = "cm" > /**< / span >
< / span > < span id = "__span-0-45" > < a id = "__codelineno-0-45" name = "__codelineno-0-45" href = "#__codelineno-0-45" > < / a > < span class = "cm" > * Get the version code set in the database by setSchemaVersion().< / span >
< / span > < span id = "__span-0-46" > < a id = "__codelineno-0-46" name = "__codelineno-0-46" href = "#__codelineno-0-46" > < / a > < span class = "cm" > */< / span >
< / span > < span id = "__span-0-47" > < a id = "__codelineno-0-47" name = "__codelineno-0-47" href = "#__codelineno-0-47" > < / a > < span class = "w" > < / span > < span class = "k" > async< / span > < span class = "w" > < / span > < span class = "nx" > getSchemaVersion< / span > < span class = "p" > ()< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< / span > < span id = "__span-0-48" > < a id = "__codelineno-0-48" name = "__codelineno-0-48" href = "#__codelineno-0-48" > < / a > < span class = "w" > < / span > < span class = "kd" > var< / span > < span class = "w" > < / span > < span class = "nx" > res< / span > < span class = "w" > < / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "k" > await< / span > < span class = "w" > < / span > < span class = "k" > this< / span > < span class = "p" > .< / span > < span class = "nx" > db< / span > < span class = "p" > .< / span > < span class = "nx" > all< / span > < span class = "p" > (< / span > < span class = "sb" > `PRAGMA user_version`< / span > < span class = "p" > );< / span >
< / span > < span id = "__span-0-49" > < a id = "__codelineno-0-49" name = "__codelineno-0-49" href = "#__codelineno-0-49" > < / a > < span class = "w" > < / span > < span class = "k" > return< / span > < span class = "w" > < / span > < span class = "nx" > res< / span > < span class = "p" > [< / span > < span class = "mf" > 0< / span > < span class = "p" > ].< / span > < span class = "nx" > user_version< / span > < span class = "p" > ;< / span >
< / span > < span id = "__span-0-50" > < a id = "__codelineno-0-50" name = "__codelineno-0-50" href = "#__codelineno-0-50" > < / a > < span class = "w" > < / span > < span class = "p" > }< / span >
< / span > < span id = "__span-0-51" > < a id = "__codelineno-0-51" name = "__codelineno-0-51" href = "#__codelineno-0-51" > < / a >
< / span > < span id = "__span-0-52" > < a id = "__codelineno-0-52" name = "__codelineno-0-52" href = "#__codelineno-0-52" > < / a > < span class = "w" > < / span > < span class = "cm" > /**< / span >
< / span > < span id = "__span-0-53" > < a id = "__codelineno-0-53" name = "__codelineno-0-53" href = "#__codelineno-0-53" > < / a > < span class = "cm" > * Set the database version, using PRAGMA user_version. Must be an integer.< / span >
< / span > < span id = "__span-0-54" > < a id = "__codelineno-0-54" name = "__codelineno-0-54" href = "#__codelineno-0-54" > < / a > < span class = "cm" > */< / span >
< / span > < span id = "__span-0-55" > < a id = "__codelineno-0-55" name = "__codelineno-0-55" href = "#__codelineno-0-55" > < / a > < span class = "w" > < / span > < span class = "k" > async< / span > < span class = "w" > < / span > < span class = "nx" > setSchemaVersion< / span > < span class = "p" > (< / span > < span class = "nx" > version< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< / span > < span id = "__span-0-56" > < a id = "__codelineno-0-56" name = "__codelineno-0-56" href = "#__codelineno-0-56" > < / a > < span class = "w" > < / span > < span class = "k" > await< / span > < span class = "w" > < / span > < span class = "k" > this< / span > < span class = "p" > .< / span > < span class = "nx" > db< / span > < span class = "p" > .< / span > < span class = "nx" > exec< / span > < span class = "p" > (< / span > < span class = "sb" > `PRAGMA user_version = < / span > < span class = "si" > ${< / span > < span class = "nx" > version< / span > < span class = "si" > }< / span > < span class = "sb" > `< / span > < span class = "p" > );< / span >
< / span > < span id = "__span-0-57" > < a id = "__codelineno-0-57" name = "__codelineno-0-57" href = "#__codelineno-0-57" > < / a > < span class = "w" > < / span > < span class = "p" > }< / span >
< / span > < span id = "__span-0-58" > < a id = "__codelineno-0-58" name = "__codelineno-0-58" href = "#__codelineno-0-58" > < / a >
< / span > < span id = "__span-0-59" > < a id = "__codelineno-0-59" name = "__codelineno-0-59" href = "#__codelineno-0-59" > < / a > < span class = "p" > }< / span >
< / span > < / code > < / pre > < / div >
< h2 id = "remote-hostmaster" > Remote host/master< / h2 >
< div class = "language-javascript highlight" > < pre > < span > < / span > < code > < span id = "__span-1-1" > < a id = "__codelineno-1-1" name = "__codelineno-1-1" href = "#__codelineno-1-1" > < / a > < span class = "k" > export< / span > < span class = "w" > < / span > < span class = "kd" > class< / span > < span class = "w" > < / span > < span class = "nx" > RemoteDatabaseAdapter< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< / span > < span id = "__span-1-2" > < a id = "__codelineno-1-2" name = "__codelineno-1-2" href = "#__codelineno-1-2" > < / a > < span class = "w" > < / span > < span class = "kr" > constructor< / span > < span class = "p" > ()< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< / span > < span id = "__span-1-3" > < a id = "__codelineno-1-3" name = "__codelineno-1-3" href = "#__codelineno-1-3" > < / a > < span class = "w" > < / span > < span class = "k" > this< / span > < span class = "p" > .< / span > < span class = "nx" > type< / span > < span class = "w" > < / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "s2" > " remote" < / span > < span class = "p" > ;< / span >
< / span > < span id = "__span-1-4" > < a id = "__codelineno-1-4" name = "__codelineno-1-4" href = "#__codelineno-1-4" > < / a > < span class = "w" > < / span > < span class = "p" > }< / span >
< / span > < span id = "__span-1-5" > < a id = "__codelineno-1-5" name = "__codelineno-1-5" href = "#__codelineno-1-5" > < / a >
< / span > < span id = "__span-1-6" > < a id = "__codelineno-1-6" name = "__codelineno-1-6" href = "#__codelineno-1-6" > < / a > < span class = "w" > < / span > < span class = "k" > async< / span > < span class = "w" > < / span > < span class = "nx" > apirequest< / span > < span class = "p" > (< / span > < span class = "nx" > args< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< / span > < span id = "__span-1-7" > < a id = "__codelineno-1-7" name = "__codelineno-1-7" href = "#__codelineno-1-7" > < / a > < span class = "w" > < / span > < span class = "kd" > var< / span > < span class = "w" > < / span > < span class = "nx" > resp< / span > < span class = "w" > < / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "k" > await< / span > < span class = "w" > < / span > < span class = "nx" > sendToPostalPointHTTPServer< / span > < span class = "p" > (< / span > < span class = "nx" > args< / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "s2" > " database" < / span > < span class = "p" > );< / span >
< / span > < span id = "__span-1-8" > < a id = "__codelineno-1-8" name = "__codelineno-1-8" href = "#__codelineno-1-8" > < / a > < span class = "w" > < / span > < span class = "k" > if< / span > < span class = "w" > < / span > < span class = "p" > (< / span > < span class = "ow" > typeof< / span > < span class = "w" > < / span > < span class = "nx" > resp< / span > < span class = "p" > .< / span > < span class = "nx" > status< / span > < span class = "w" > < / span > < span class = "o" > ==< / span > < span class = "w" > < / span > < span class = "s2" > " string" < / span > < span class = "w" > < / span > < span class = "o" > & & < / span > < span class = "w" > < / span > < span class = "nx" > resp< / span > < span class = "p" > .< / span > < span class = "nx" > status< / span > < span class = "w" > < / span > < span class = "o" > ==< / span > < span class = "w" > < / span > < span class = "s2" > " OK" < / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< / span > < span id = "__span-1-9" > < a id = "__codelineno-1-9" name = "__codelineno-1-9" href = "#__codelineno-1-9" > < / a > < span class = "w" > < / span > < span class = "k" > return< / span > < span class = "w" > < / span > < span class = "nx" > resp< / span > < span class = "p" > .< / span > < span class = "nx" > result< / span > < span class = "p" > ;< / span >
< / span > < span id = "__span-1-10" > < a id = "__codelineno-1-10" name = "__codelineno-1-10" href = "#__codelineno-1-10" > < / a > < span class = "w" > < / span > < span class = "p" > }< / span > < span class = "w" > < / span > < span class = "k" > else< / span > < span class = "w" > < / span > < span class = "k" > if< / span > < span class = "w" > < / span > < span class = "p" > (< / span > < span class = "ow" > typeof< / span > < span class = "w" > < / span > < span class = "nx" > resp< / span > < span class = "p" > .< / span > < span class = "nx" > status< / span > < span class = "w" > < / span > < span class = "o" > ==< / span > < span class = "w" > < / span > < span class = "s2" > " string" < / span > < span class = "w" > < / span > < span class = "o" > & & < / span > < span class = "w" > < / span > < span class = "nx" > resp< / span > < span class = "p" > .< / span > < span class = "nx" > status< / span > < span class = "w" > < / span > < span class = "o" > ==< / span > < span class = "w" > < / span > < span class = "s2" > " ERR" < / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< / span > < span id = "__span-1-11" > < a id = "__codelineno-1-11" name = "__codelineno-1-11" href = "#__codelineno-1-11" > < / a > < span class = "w" > < / span > < span class = "k" > if< / span > < span class = "w" > < / span > < span class = "p" > (< / span > < span class = "ow" > typeof< / span > < span class = "w" > < / span > < span class = "nx" > resp< / span > < span class = "p" > .< / span > < span class = "nx" > message< / span > < span class = "w" > < / span > < span class = "o" > ==< / span > < span class = "w" > < / span > < span class = "s2" > " string" < / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< / span > < span id = "__span-1-12" > < a id = "__codelineno-1-12" name = "__codelineno-1-12" href = "#__codelineno-1-12" > < / a > < span class = "w" > < / span > < span class = "k" > throw< / span > < span class = "w" > < / span > < span class = "ow" > new< / span > < span class = "w" > < / span > < span class = "ne" > Error< / span > < span class = "p" > (< / span > < span class = "nx" > resp< / span > < span class = "p" > .< / span > < span class = "nx" > message< / span > < span class = "p" > );< / span >
< / span > < span id = "__span-1-13" > < a id = "__codelineno-1-13" name = "__codelineno-1-13" href = "#__codelineno-1-13" > < / a > < span class = "w" > < / span > < span class = "p" > }< / span > < span class = "w" > < / span > < span class = "k" > else< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< / span > < span id = "__span-1-14" > < a id = "__codelineno-1-14" name = "__codelineno-1-14" href = "#__codelineno-1-14" > < / a > < span class = "w" > < / span > < span class = "k" > throw< / span > < span class = "w" > < / span > < span class = "ow" > new< / span > < span class = "w" > < / span > < span class = "ne" > Error< / span > < span class = "p" > (< / span > < span class = "nx" > resp< / span > < span class = "p" > );< / span >
< / span > < span id = "__span-1-15" > < a id = "__codelineno-1-15" name = "__codelineno-1-15" href = "#__codelineno-1-15" > < / a > < span class = "w" > < / span > < span class = "p" > }< / span >
< / span > < span id = "__span-1-16" > < a id = "__codelineno-1-16" name = "__codelineno-1-16" href = "#__codelineno-1-16" > < / a > < span class = "w" > < / span > < span class = "p" > }< / span > < span class = "w" > < / span > < span class = "k" > else< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< / span > < span id = "__span-1-17" > < a id = "__codelineno-1-17" name = "__codelineno-1-17" href = "#__codelineno-1-17" > < / a > < span class = "w" > < / span > < span class = "k" > throw< / span > < span class = "w" > < / span > < span class = "ow" > new< / span > < span class = "w" > < / span > < span class = "ne" > Error< / span > < span class = "p" > (< / span > < span class = "nx" > resp< / span > < span class = "p" > );< / span >
< / span > < span id = "__span-1-18" > < a id = "__codelineno-1-18" name = "__codelineno-1-18" href = "#__codelineno-1-18" > < / a > < span class = "w" > < / span > < span class = "p" > }< / span >
< / span > < span id = "__span-1-19" > < a id = "__codelineno-1-19" name = "__codelineno-1-19" href = "#__codelineno-1-19" > < / a > < span class = "w" > < / span > < span class = "p" > }< / span >
< / span > < span id = "__span-1-20" > < a id = "__codelineno-1-20" name = "__codelineno-1-20" href = "#__codelineno-1-20" > < / a >
< / span > < span id = "__span-1-21" > < a id = "__codelineno-1-21" name = "__codelineno-1-21" href = "#__codelineno-1-21" > < / a > < span class = "w" > < / span > < span class = "k" > async< / span > < span class = "w" > < / span > < span class = "nx" > query< / span > < span class = "p" > (< / span > < span class = "nx" > query< / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "nx" > replace< / span > < span class = "w" > < / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "p" > [])< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< / span > < span id = "__span-1-22" > < a id = "__codelineno-1-22" name = "__codelineno-1-22" href = "#__codelineno-1-22" > < / a > < span class = "w" > < / span > < span class = "k" > return< / span > < span class = "w" > < / span > < span class = "k" > await< / span > < span class = "w" > < / span > < span class = "k" > this< / span > < span class = "p" > .< / span > < span class = "nx" > apirequest< / span > < span class = "p" > ({< / span > < span class = "nx" > type< / span > < span class = "o" > :< / span > < span class = "w" > < / span > < span class = "s2" > " query" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "nx" > query< / span > < span class = "o" > :< / span > < span class = "w" > < / span > < span class = "nx" > query< / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "nx" > replace< / span > < span class = "o" > :< / span > < span class = "w" > < / span > < span class = "nx" > replace< / span > < span class = "p" > });< / span >
< / span > < span id = "__span-1-23" > < a id = "__codelineno-1-23" name = "__codelineno-1-23" href = "#__codelineno-1-23" > < / a > < span class = "w" > < / span > < span class = "p" > }< / span >
< / span > < span id = "__span-1-24" > < a id = "__codelineno-1-24" name = "__codelineno-1-24" href = "#__codelineno-1-24" > < / a >
< / span > < span id = "__span-1-25" > < a id = "__codelineno-1-25" name = "__codelineno-1-25" href = "#__codelineno-1-25" > < / a > < span class = "w" > < / span > < span class = "k" > async< / span > < span class = "w" > < / span > < span class = "nx" > run< / span > < span class = "p" > (< / span > < span class = "nx" > statement< / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "nx" > replace< / span > < span class = "w" > < / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "p" > [])< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< / span > < span id = "__span-1-26" > < a id = "__codelineno-1-26" name = "__codelineno-1-26" href = "#__codelineno-1-26" > < / a > < span class = "w" > < / span > < span class = "k" > return< / span > < span class = "w" > < / span > < span class = "k" > await< / span > < span class = "w" > < / span > < span class = "k" > this< / span > < span class = "p" > .< / span > < span class = "nx" > apirequest< / span > < span class = "p" > ({< / span > < span class = "nx" > type< / span > < span class = "o" > :< / span > < span class = "w" > < / span > < span class = "s2" > " run" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "nx" > query< / span > < span class = "o" > :< / span > < span class = "w" > < / span > < span class = "nx" > statement< / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "nx" > replace< / span > < span class = "o" > :< / span > < span class = "w" > < / span > < span class = "nx" > replace< / span > < span class = "p" > });< / span >
< / span > < span id = "__span-1-27" > < a id = "__codelineno-1-27" name = "__codelineno-1-27" href = "#__codelineno-1-27" > < / a > < span class = "w" > < / span > < span class = "p" > }< / span >
< / span > < span id = "__span-1-28" > < a id = "__codelineno-1-28" name = "__codelineno-1-28" href = "#__codelineno-1-28" > < / a >
< / span > < span id = "__span-1-29" > < a id = "__codelineno-1-29" name = "__codelineno-1-29" href = "#__codelineno-1-29" > < / a > < span class = "w" > < / span > < span class = "k" > async< / span > < span class = "w" > < / span > < span class = "nx" > exec< / span > < span class = "p" > (< / span > < span class = "nx" > statement< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< / span > < span id = "__span-1-30" > < a id = "__codelineno-1-30" name = "__codelineno-1-30" href = "#__codelineno-1-30" > < / a > < span class = "w" > < / span > < span class = "k" > return< / span > < span class = "w" > < / span > < span class = "k" > await< / span > < span class = "w" > < / span > < span class = "k" > this< / span > < span class = "p" > .< / span > < span class = "nx" > apirequest< / span > < span class = "p" > ({< / span > < span class = "nx" > type< / span > < span class = "o" > :< / span > < span class = "w" > < / span > < span class = "s2" > " exec" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "nx" > query< / span > < span class = "o" > :< / span > < span class = "w" > < / span > < span class = "nx" > statement< / span > < span class = "p" > });< / span >
< / span > < span id = "__span-1-31" > < a id = "__codelineno-1-31" name = "__codelineno-1-31" href = "#__codelineno-1-31" > < / a > < span class = "w" > < / span > < span class = "p" > }< / span >
< / span > < span id = "__span-1-32" > < a id = "__codelineno-1-32" name = "__codelineno-1-32" href = "#__codelineno-1-32" > < / a >
< / span > < span id = "__span-1-33" > < a id = "__codelineno-1-33" name = "__codelineno-1-33" href = "#__codelineno-1-33" > < / a > < span class = "w" > < / span > < span class = "k" > async< / span > < span class = "w" > < / span > < span class = "nx" > exists< / span > < span class = "p" > (< / span > < span class = "nx" > table< / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "nx" > where< / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "nx" > replace< / span > < span class = "w" > < / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "p" > [])< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< / span > < span id = "__span-1-34" > < a id = "__codelineno-1-34" name = "__codelineno-1-34" href = "#__codelineno-1-34" > < / a > < span class = "w" > < / span > < span class = "k" > return< / span > < span class = "w" > < / span > < span class = "k" > await< / span > < span class = "w" > < / span > < span class = "k" > this< / span > < span class = "p" > .< / span > < span class = "nx" > apirequest< / span > < span class = "p" > ({< / span > < span class = "nx" > type< / span > < span class = "o" > :< / span > < span class = "w" > < / span > < span class = "s2" > " exists" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "nx" > table< / span > < span class = "o" > :< / span > < span class = "w" > < / span > < span class = "nx" > table< / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "nx" > where< / span > < span class = "o" > :< / span > < span class = "w" > < / span > < span class = "nx" > where< / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "nx" > replace< / span > < span class = "o" > :< / span > < span class = "w" > < / span > < span class = "nx" > replace< / span > < span class = "p" > });< / span >
< / span > < span id = "__span-1-35" > < a id = "__codelineno-1-35" name = "__codelineno-1-35" href = "#__codelineno-1-35" > < / a > < span class = "w" > < / span > < span class = "p" > }< / span >
< / span > < span id = "__span-1-36" > < a id = "__codelineno-1-36" name = "__codelineno-1-36" href = "#__codelineno-1-36" > < / a >
< / span > < span id = "__span-1-37" > < a id = "__codelineno-1-37" name = "__codelineno-1-37" href = "#__codelineno-1-37" > < / a > < span class = "w" > < / span > < span class = "k" > async< / span > < span class = "w" > < / span > < span class = "nx" > close< / span > < span class = "p" > ()< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< / span > < span id = "__span-1-38" > < a id = "__codelineno-1-38" name = "__codelineno-1-38" href = "#__codelineno-1-38" > < / a > < span class = "w" > < / span > < span class = "c1" > // NOOP: We don' t care about this< / span >
< / span > < span id = "__span-1-39" > < a id = "__codelineno-1-39" name = "__codelineno-1-39" href = "#__codelineno-1-39" > < / a > < span class = "w" > < / span > < span class = "p" > }< / span >
< / span > < span id = "__span-1-40" > < a id = "__codelineno-1-40" name = "__codelineno-1-40" href = "#__codelineno-1-40" > < / a >
< / span > < span id = "__span-1-41" > < a id = "__codelineno-1-41" name = "__codelineno-1-41" href = "#__codelineno-1-41" > < / a > < span class = "w" > < / span > < span class = "k" > async< / span > < span class = "w" > < / span > < span class = "nx" > tableExists< / span > < span class = "p" > (< / span > < span class = "nx" > table< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< / span > < span id = "__span-1-42" > < a id = "__codelineno-1-42" name = "__codelineno-1-42" href = "#__codelineno-1-42" > < / a > < span class = "w" > < / span > < span class = "k" > return< / span > < span class = "w" > < / span > < span class = "k" > await< / span > < span class = "w" > < / span > < span class = "k" > this< / span > < span class = "p" > .< / span > < span class = "nx" > apirequest< / span > < span class = "p" > ({< / span > < span class = "nx" > type< / span > < span class = "o" > :< / span > < span class = "w" > < / span > < span class = "s2" > " tableExists" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "nx" > table< / span > < span class = "o" > :< / span > < span class = "w" > < / span > < span class = "nx" > table< / span > < span class = "p" > });< / span >
< / span > < span id = "__span-1-43" > < a id = "__codelineno-1-43" name = "__codelineno-1-43" href = "#__codelineno-1-43" > < / a > < span class = "w" > < / span > < span class = "p" > }< / span >
< / span > < span id = "__span-1-44" > < a id = "__codelineno-1-44" name = "__codelineno-1-44" href = "#__codelineno-1-44" > < / a >
< / span > < span id = "__span-1-45" > < a id = "__codelineno-1-45" name = "__codelineno-1-45" href = "#__codelineno-1-45" > < / a > < span class = "w" > < / span > < span class = "k" > async< / span > < span class = "w" > < / span > < span class = "nx" > getSchemaVersion< / span > < span class = "p" > ()< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< / span > < span id = "__span-1-46" > < a id = "__codelineno-1-46" name = "__codelineno-1-46" href = "#__codelineno-1-46" > < / a > < span class = "w" > < / span > < span class = "k" > return< / span > < span class = "w" > < / span > < span class = "k" > await< / span > < span class = "w" > < / span > < span class = "k" > this< / span > < span class = "p" > .< / span > < span class = "nx" > apirequest< / span > < span class = "p" > ({< / span > < span class = "nx" > type< / span > < span class = "o" > :< / span > < span class = "w" > < / span > < span class = "s2" > " getSchemaVersion" < / span > < span class = "p" > });< / span >
< / span > < span id = "__span-1-47" > < a id = "__codelineno-1-47" name = "__codelineno-1-47" href = "#__codelineno-1-47" > < / a > < span class = "w" > < / span > < span class = "p" > }< / span >
< / span > < span id = "__span-1-48" > < a id = "__codelineno-1-48" name = "__codelineno-1-48" href = "#__codelineno-1-48" > < / a >
< / span > < span id = "__span-1-49" > < a id = "__codelineno-1-49" name = "__codelineno-1-49" href = "#__codelineno-1-49" > < / a > < span class = "w" > < / span > < span class = "k" > async< / span > < span class = "w" > < / span > < span class = "nx" > setSchemaVersion< / span > < span class = "p" > (< / span > < span class = "nx" > version< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< / span > < span id = "__span-1-50" > < a id = "__codelineno-1-50" name = "__codelineno-1-50" href = "#__codelineno-1-50" > < / a > < span class = "w" > < / span > < span class = "c1" > // NOOP: Don' t upgrade server' s installation, it can do that itself< / span >
< / span > < span id = "__span-1-51" > < a id = "__codelineno-1-51" name = "__codelineno-1-51" href = "#__codelineno-1-51" > < / a > < span class = "w" > < / span > < span class = "p" > }< / span >
< / span > < span id = "__span-1-52" > < a id = "__codelineno-1-52" name = "__codelineno-1-52" href = "#__codelineno-1-52" > < / a > < span class = "p" > }< / span >
< / span > < / code > < / pre > < / div >
< h2 id = "mariadbmysql" > MariaDB/MySQL< / h2 >
< div class = "language-javascript highlight" > < pre > < span > < / span > < code > < span id = "__span-2-1" > < a id = "__codelineno-2-1" name = "__codelineno-2-1" href = "#__codelineno-2-1" > < / a > < span class = "k" > export< / span > < span class = "w" > < / span > < span class = "kd" > class< / span > < span class = "w" > < / span > < span class = "nx" > MariaDBAdapter< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< / span > < span id = "__span-2-2" > < a id = "__codelineno-2-2" name = "__codelineno-2-2" href = "#__codelineno-2-2" > < / a > < span class = "w" > < / span > < span class = "kr" > constructor< / span > < span class = "p" > (< / span > < span class = "nx" > connection< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< / span > < span id = "__span-2-3" > < a id = "__codelineno-2-3" name = "__codelineno-2-3" href = "#__codelineno-2-3" > < / a > < span class = "w" > < / span > < span class = "k" > this< / span > < span class = "p" > .< / span > < span class = "nx" > type< / span > < span class = "w" > < / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "s2" > " mariadb" < / span > < span class = "p" > ;< / span >
< / span > < span id = "__span-2-4" > < a id = "__codelineno-2-4" name = "__codelineno-2-4" href = "#__codelineno-2-4" > < / a > < span class = "w" > < / span > < span class = "k" > this< / span > < span class = "p" > .< / span > < span class = "nx" > conn< / span > < span class = "w" > < / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "nx" > connection< / span > < span class = "p" > ;< / span >
< / span > < span id = "__span-2-5" > < a id = "__codelineno-2-5" name = "__codelineno-2-5" href = "#__codelineno-2-5" > < / a > < span class = "w" > < / span > < span class = "p" > }< / span >
< / span > < span id = "__span-2-6" > < a id = "__codelineno-2-6" name = "__codelineno-2-6" href = "#__codelineno-2-6" > < / a >
< / span > < span id = "__span-2-7" > < a id = "__codelineno-2-7" name = "__codelineno-2-7" href = "#__codelineno-2-7" > < / a > < span class = "w" > < / span > < span class = "k" > async< / span > < span class = "w" > < / span > < span class = "nx" > query< / span > < span class = "p" > (< / span > < span class = "nx" > query< / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "nx" > replace< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< / span > < span id = "__span-2-8" > < a id = "__codelineno-2-8" name = "__codelineno-2-8" href = "#__codelineno-2-8" > < / a > < span class = "w" > < / span > < span class = "k" > if< / span > < span class = "w" > < / span > < span class = "p" > (< / span > < span class = "nb" > global< / span > < span class = "p" > .< / span > < span class = "nx" > devMode< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< / span > < span id = "__span-2-9" > < a id = "__codelineno-2-9" name = "__codelineno-2-9" href = "#__codelineno-2-9" > < / a > < span class = "w" > < / span > < span class = "nx" > console< / span > < span class = "p" > .< / span > < span class = "nx" > info< / span > < span class = "p" > (< / span > < span class = "nx" > query< / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "nx" > replace< / span > < span class = "p" > );< / span >
< / span > < span id = "__span-2-10" > < a id = "__codelineno-2-10" name = "__codelineno-2-10" href = "#__codelineno-2-10" > < / a > < span class = "w" > < / span > < span class = "p" > }< / span >
< / span > < span id = "__span-2-11" > < a id = "__codelineno-2-11" name = "__codelineno-2-11" href = "#__codelineno-2-11" > < / a > < span class = "w" > < / span > < span class = "k" > return< / span > < span class = "w" > < / span > < span class = "k" > await< / span > < span class = "w" > < / span > < span class = "k" > this< / span > < span class = "p" > .< / span > < span class = "nx" > conn< / span > < span class = "p" > .< / span > < span class = "nx" > query< / span > < span class = "p" > (< / span > < span class = "nx" > query< / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "nx" > replace< / span > < span class = "p" > );< / span >
< / span > < span id = "__span-2-12" > < a id = "__codelineno-2-12" name = "__codelineno-2-12" href = "#__codelineno-2-12" > < / a > < span class = "w" > < / span > < span class = "p" > }< / span >
< / span > < span id = "__span-2-13" > < a id = "__codelineno-2-13" name = "__codelineno-2-13" href = "#__codelineno-2-13" > < / a >
< / span > < span id = "__span-2-14" > < a id = "__codelineno-2-14" name = "__codelineno-2-14" href = "#__codelineno-2-14" > < / a > < span class = "w" > < / span > < span class = "k" > async< / span > < span class = "w" > < / span > < span class = "nx" > run< / span > < span class = "p" > (< / span > < span class = "nx" > statement< / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "nx" > replace< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< / span > < span id = "__span-2-15" > < a id = "__codelineno-2-15" name = "__codelineno-2-15" href = "#__codelineno-2-15" > < / a > < span class = "w" > < / span > < span class = "k" > if< / span > < span class = "w" > < / span > < span class = "p" > (< / span > < span class = "nb" > global< / span > < span class = "p" > .< / span > < span class = "nx" > devMode< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< / span > < span id = "__span-2-16" > < a id = "__codelineno-2-16" name = "__codelineno-2-16" href = "#__codelineno-2-16" > < / a > < span class = "w" > < / span > < span class = "nx" > console< / span > < span class = "p" > .< / span > < span class = "nx" > info< / span > < span class = "p" > (< / span > < span class = "nx" > statement< / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "nx" > replace< / span > < span class = "p" > );< / span >
< / span > < span id = "__span-2-17" > < a id = "__codelineno-2-17" name = "__codelineno-2-17" href = "#__codelineno-2-17" > < / a > < span class = "w" > < / span > < span class = "p" > }< / span >
< / span > < span id = "__span-2-18" > < a id = "__codelineno-2-18" name = "__codelineno-2-18" href = "#__codelineno-2-18" > < / a > < span class = "w" > < / span > < span class = "k" > return< / span > < span class = "w" > < / span > < span class = "k" > await< / span > < span class = "w" > < / span > < span class = "k" > this< / span > < span class = "p" > .< / span > < span class = "nx" > query< / span > < span class = "p" > (< / span > < span class = "nx" > statement< / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "nx" > replace< / span > < span class = "p" > );< / span >
< / span > < span id = "__span-2-19" > < a id = "__codelineno-2-19" name = "__codelineno-2-19" href = "#__codelineno-2-19" > < / a > < span class = "w" > < / span > < span class = "p" > }< / span >
< / span > < span id = "__span-2-20" > < a id = "__codelineno-2-20" name = "__codelineno-2-20" href = "#__codelineno-2-20" > < / a >
< / span > < span id = "__span-2-21" > < a id = "__codelineno-2-21" name = "__codelineno-2-21" href = "#__codelineno-2-21" > < / a > < span class = "w" > < / span > < span class = "k" > async< / span > < span class = "w" > < / span > < span class = "nx" > exec< / span > < span class = "p" > (< / span > < span class = "nx" > statement< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< / span > < span id = "__span-2-22" > < a id = "__codelineno-2-22" name = "__codelineno-2-22" href = "#__codelineno-2-22" > < / a > < span class = "w" > < / span > < span class = "k" > if< / span > < span class = "w" > < / span > < span class = "p" > (< / span > < span class = "nb" > global< / span > < span class = "p" > .< / span > < span class = "nx" > devMode< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< / span > < span id = "__span-2-23" > < a id = "__codelineno-2-23" name = "__codelineno-2-23" href = "#__codelineno-2-23" > < / a > < span class = "w" > < / span > < span class = "nx" > console< / span > < span class = "p" > .< / span > < span class = "nx" > info< / span > < span class = "p" > (< / span > < span class = "nx" > statement< / span > < span class = "p" > );< / span >
< / span > < span id = "__span-2-24" > < a id = "__codelineno-2-24" name = "__codelineno-2-24" href = "#__codelineno-2-24" > < / a > < span class = "w" > < / span > < span class = "p" > }< / span >
< / span > < span id = "__span-2-25" > < a id = "__codelineno-2-25" name = "__codelineno-2-25" href = "#__codelineno-2-25" > < / a > < span class = "w" > < / span > < span class = "k" > return< / span > < span class = "w" > < / span > < span class = "k" > await< / span > < span class = "w" > < / span > < span class = "k" > this< / span > < span class = "p" > .< / span > < span class = "nx" > run< / span > < span class = "p" > (< / span > < span class = "nx" > statement< / span > < span class = "p" > );< / span >
< / span > < span id = "__span-2-26" > < a id = "__codelineno-2-26" name = "__codelineno-2-26" href = "#__codelineno-2-26" > < / a > < span class = "w" > < / span > < span class = "p" > }< / span >
< / span > < span id = "__span-2-27" > < a id = "__codelineno-2-27" name = "__codelineno-2-27" href = "#__codelineno-2-27" > < / a >
< / span > < span id = "__span-2-28" > < a id = "__codelineno-2-28" name = "__codelineno-2-28" href = "#__codelineno-2-28" > < / a > < span class = "w" > < / span > < span class = "k" > async< / span > < span class = "w" > < / span > < span class = "nx" > exists< / span > < span class = "p" > (< / span > < span class = "nx" > table< / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "nx" > where< / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "nx" > replace< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< / span > < span id = "__span-2-29" > < a id = "__codelineno-2-29" name = "__codelineno-2-29" href = "#__codelineno-2-29" > < / a > < span class = "w" > < / span > < span class = "kd" > const< / span > < span class = "w" > < / span > < span class = "nx" > q< / span > < span class = "w" > < / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "k" > await< / span > < span class = "w" > < / span > < span class = "k" > this< / span > < span class = "p" > .< / span > < span class = "nx" > query< / span > < span class = "p" > (< / span > < span class = "s2" > " SELECT EXISTS(SELECT 1 FROM " < / span > < span class = "w" > < / span > < span class = "o" > +< / span > < span class = "w" > < / span > < span class = "nx" > table< / span > < span class = "w" > < / span > < span class = "o" > +< / span > < span class = "w" > < / span > < span class = "s2" > " WHERE " < / span > < span class = "w" > < / span > < span class = "o" > +< / span > < span class = "w" > < / span > < span class = "nx" > where< / span > < span class = "w" > < / span > < span class = "o" > +< / span > < span class = "w" > < / span > < span class = "s2" > " ) as n" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "nx" > replace< / span > < span class = "p" > );< / span >
< / span > < span id = "__span-2-30" > < a id = "__codelineno-2-30" name = "__codelineno-2-30" href = "#__codelineno-2-30" > < / a > < span class = "w" > < / span > < span class = "k" > if< / span > < span class = "w" > < / span > < span class = "p" > (< / span > < span class = "nx" > q< / span > < span class = "p" > [< / span > < span class = "mf" > 0< / span > < span class = "p" > ].< / span > < span class = "nx" > n< / span > < span class = "w" > < / span > < span class = "o" > > < / span > < span class = "w" > < / span > < span class = "mf" > 0< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< / span > < span id = "__span-2-31" > < a id = "__codelineno-2-31" name = "__codelineno-2-31" href = "#__codelineno-2-31" > < / a > < span class = "w" > < / span > < span class = "k" > return< / span > < span class = "w" > < / span > < span class = "kc" > true< / span > < span class = "p" > ;< / span >
< / span > < span id = "__span-2-32" > < a id = "__codelineno-2-32" name = "__codelineno-2-32" href = "#__codelineno-2-32" > < / a > < span class = "w" > < / span > < span class = "p" > }< / span >
< / span > < span id = "__span-2-33" > < a id = "__codelineno-2-33" name = "__codelineno-2-33" href = "#__codelineno-2-33" > < / a > < span class = "w" > < / span > < span class = "k" > return< / span > < span class = "w" > < / span > < span class = "kc" > false< / span > < span class = "p" > ;< / span >
< / span > < span id = "__span-2-34" > < a id = "__codelineno-2-34" name = "__codelineno-2-34" href = "#__codelineno-2-34" > < / a > < span class = "w" > < / span > < span class = "p" > }< / span >
< / span > < span id = "__span-2-35" > < a id = "__codelineno-2-35" name = "__codelineno-2-35" href = "#__codelineno-2-35" > < / a >
< / span > < span id = "__span-2-36" > < a id = "__codelineno-2-36" name = "__codelineno-2-36" href = "#__codelineno-2-36" > < / a > < span class = "w" > < / span > < span class = "k" > async< / span > < span class = "w" > < / span > < span class = "nx" > close< / span > < span class = "p" > ()< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< / span > < span id = "__span-2-37" > < a id = "__codelineno-2-37" name = "__codelineno-2-37" href = "#__codelineno-2-37" > < / a > < span class = "w" > < / span > < span class = "k" > await< / span > < span class = "w" > < / span > < span class = "k" > this< / span > < span class = "p" > .< / span > < span class = "nx" > conn< / span > < span class = "p" > .< / span > < span class = "nx" > release< / span > < span class = "p" > ();< / span >
< / span > < span id = "__span-2-38" > < a id = "__codelineno-2-38" name = "__codelineno-2-38" href = "#__codelineno-2-38" > < / a > < span class = "w" > < / span > < span class = "p" > }< / span >
< / span > < span id = "__span-2-39" > < a id = "__codelineno-2-39" name = "__codelineno-2-39" href = "#__codelineno-2-39" > < / a >
< / span > < span id = "__span-2-40" > < a id = "__codelineno-2-40" name = "__codelineno-2-40" href = "#__codelineno-2-40" > < / a > < span class = "w" > < / span > < span class = "k" > async< / span > < span class = "w" > < / span > < span class = "nx" > tableExists< / span > < span class = "p" > (< / span > < span class = "nx" > table< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< / span > < span id = "__span-2-41" > < a id = "__codelineno-2-41" name = "__codelineno-2-41" href = "#__codelineno-2-41" > < / a > < span class = "w" > < / span > < span class = "k" > return< / span > < span class = "w" > < / span > < span class = "p" > (< / span > < span class = "k" > await< / span > < span class = "w" > < / span > < span class = "k" > this< / span > < span class = "p" > .< / span > < span class = "nx" > query< / span > < span class = "p" > (< / span > < span class = "s2" > " SHOW TABLES LIKE ?" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "nx" > table< / span > < span class = "p" > )).< / span > < span class = "nx" > length< / span > < span class = "w" > < / span > < span class = "o" > > < / span > < span class = "w" > < / span > < span class = "mf" > 0< / span > < span class = "p" > ;< / span >
< / span > < span id = "__span-2-42" > < a id = "__codelineno-2-42" name = "__codelineno-2-42" href = "#__codelineno-2-42" > < / a > < span class = "w" > < / span > < span class = "p" > }< / span >
< / span > < span id = "__span-2-43" > < a id = "__codelineno-2-43" name = "__codelineno-2-43" href = "#__codelineno-2-43" > < / a >
< / span > < span id = "__span-2-44" > < a id = "__codelineno-2-44" name = "__codelineno-2-44" href = "#__codelineno-2-44" > < / a > < span class = "w" > < / span > < span class = "cm" > /**< / span >
< / span > < span id = "__span-2-45" > < a id = "__codelineno-2-45" name = "__codelineno-2-45" href = "#__codelineno-2-45" > < / a > < span class = "cm" > * Get the version code set in the database by setSchemaVersion(). Returns zero if not set.< / span >
< / span > < span id = "__span-2-46" > < a id = "__codelineno-2-46" name = "__codelineno-2-46" href = "#__codelineno-2-46" > < / a > < span class = "cm" > */< / span >
< / span > < span id = "__span-2-47" > < a id = "__codelineno-2-47" name = "__codelineno-2-47" href = "#__codelineno-2-47" > < / a > < span class = "w" > < / span > < span class = "k" > async< / span > < span class = "w" > < / span > < span class = "nx" > getSchemaVersion< / span > < span class = "p" > ()< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< / span > < span id = "__span-2-48" > < a id = "__codelineno-2-48" name = "__codelineno-2-48" href = "#__codelineno-2-48" > < / a > < span class = "w" > < / span > < span class = "k" > if< / span > < span class = "w" > < / span > < span class = "p" > (< / span > < span class = "k" > await< / span > < span class = "w" > < / span > < span class = "k" > this< / span > < span class = "p" > .< / span > < span class = "nx" > tableExists< / span > < span class = "p" > (< / span > < span class = "s2" > " database_metadata" < / span > < span class = "p" > ))< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< / span > < span id = "__span-2-49" > < a id = "__codelineno-2-49" name = "__codelineno-2-49" href = "#__codelineno-2-49" > < / a > < span class = "w" > < / span > < span class = "kd" > var< / span > < span class = "w" > < / span > < span class = "nx" > res< / span > < span class = "w" > < / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "k" > await< / span > < span class = "w" > < / span > < span class = "k" > this< / span > < span class = "p" > .< / span > < span class = "nx" > query< / span > < span class = "p" > (< / span > < span class = "s2" > " SELECT `value` FROM database_metadata WHERE `key`=' schema_version' LIMIT 1" < / span > < span class = "p" > );< / span >
< / span > < span id = "__span-2-50" > < a id = "__codelineno-2-50" name = "__codelineno-2-50" href = "#__codelineno-2-50" > < / a > < span class = "w" > < / span > < span class = "nx" > console< / span > < span class = "p" > .< / span > < span class = "nx" > log< / span > < span class = "p" > (< / span > < span class = "nx" > res< / span > < span class = "p" > );< / span >
< / span > < span id = "__span-2-51" > < a id = "__codelineno-2-51" name = "__codelineno-2-51" href = "#__codelineno-2-51" > < / a > < span class = "w" > < / span > < span class = "nx" > console< / span > < span class = "p" > .< / span > < span class = "nx" > log< / span > < span class = "p" > (< / span > < span class = "nx" > res< / span > < span class = "p" > [< / span > < span class = "mf" > 0< / span > < span class = "p" > ].< / span > < span class = "nx" > value< / span > < span class = "p" > );< / span >
< / span > < span id = "__span-2-52" > < a id = "__codelineno-2-52" name = "__codelineno-2-52" href = "#__codelineno-2-52" > < / a > < span class = "w" > < / span > < span class = "k" > if< / span > < span class = "w" > < / span > < span class = "p" > (< / span > < span class = "nx" > res< / span > < span class = "p" > .< / span > < span class = "nx" > length< / span > < span class = "w" > < / span > < span class = "o" > ==< / span > < span class = "w" > < / span > < span class = "mf" > 1< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< / span > < span id = "__span-2-53" > < a id = "__codelineno-2-53" name = "__codelineno-2-53" href = "#__codelineno-2-53" > < / a > < span class = "w" > < / span > < span class = "k" > return< / span > < span class = "w" > < / span > < span class = "nx" > res< / span > < span class = "p" > [< / span > < span class = "mf" > 0< / span > < span class = "p" > ].< / span > < span class = "nx" > value< / span > < span class = "p" > ;< / span >
< / span > < span id = "__span-2-54" > < a id = "__codelineno-2-54" name = "__codelineno-2-54" href = "#__codelineno-2-54" > < / a > < span class = "w" > < / span > < span class = "p" > }< / span >
< / span > < span id = "__span-2-55" > < a id = "__codelineno-2-55" name = "__codelineno-2-55" href = "#__codelineno-2-55" > < / a > < span class = "w" > < / span > < span class = "p" > }< / span >
< / span > < span id = "__span-2-56" > < a id = "__codelineno-2-56" name = "__codelineno-2-56" href = "#__codelineno-2-56" > < / a > < span class = "w" > < / span > < span class = "k" > return< / span > < span class = "w" > < / span > < span class = "mf" > 0< / span > < span class = "p" > ;< / span >
< / span > < span id = "__span-2-57" > < a id = "__codelineno-2-57" name = "__codelineno-2-57" href = "#__codelineno-2-57" > < / a > < span class = "w" > < / span > < span class = "p" > }< / span >
< / span > < span id = "__span-2-58" > < a id = "__codelineno-2-58" name = "__codelineno-2-58" href = "#__codelineno-2-58" > < / a >
< / span > < span id = "__span-2-59" > < a id = "__codelineno-2-59" name = "__codelineno-2-59" href = "#__codelineno-2-59" > < / a > < span class = "w" > < / span > < span class = "cm" > /**< / span >
< / span > < span id = "__span-2-60" > < a id = "__codelineno-2-60" name = "__codelineno-2-60" href = "#__codelineno-2-60" > < / a > < span class = "cm" > * Set a version number for the database schema.< / span >
< / span > < span id = "__span-2-61" > < a id = "__codelineno-2-61" name = "__codelineno-2-61" href = "#__codelineno-2-61" > < / a > < span class = "cm" > * Must be an integer to maintain code compatibility with SQLite driver.< / span >
< / span > < span id = "__span-2-62" > < a id = "__codelineno-2-62" name = "__codelineno-2-62" href = "#__codelineno-2-62" > < / a > < span class = "cm" > * Will create a " database_metadata" table if required to store the version number.< / span >
< / span > < span id = "__span-2-63" > < a id = "__codelineno-2-63" name = "__codelineno-2-63" href = "#__codelineno-2-63" > < / a > < span class = "cm" > */< / span >
< / span > < span id = "__span-2-64" > < a id = "__codelineno-2-64" name = "__codelineno-2-64" href = "#__codelineno-2-64" > < / a > < span class = "w" > < / span > < span class = "k" > async< / span > < span class = "w" > < / span > < span class = "nx" > setSchemaVersion< / span > < span class = "p" > (< / span > < span class = "nx" > version< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< / span > < span id = "__span-2-65" > < a id = "__codelineno-2-65" name = "__codelineno-2-65" href = "#__codelineno-2-65" > < / a > < span class = "w" > < / span > < span class = "k" > if< / span > < span class = "w" > < / span > < span class = "p" > (< / span > < span class = "k" > await< / span > < span class = "w" > < / span > < span class = "k" > this< / span > < span class = "p" > .< / span > < span class = "nx" > tableExists< / span > < span class = "p" > (< / span > < span class = "s2" > " database_metadata" < / span > < span class = "p" > ))< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< / span > < span id = "__span-2-66" > < a id = "__codelineno-2-66" name = "__codelineno-2-66" href = "#__codelineno-2-66" > < / a > < span class = "w" > < / span > < span class = "k" > await< / span > < span class = "w" > < / span > < span class = "k" > this< / span > < span class = "p" > .< / span > < span class = "nx" > query< / span > < span class = "p" > (< / span > < span class = "s2" > " REPLACE INTO `database_metadata` (`key`, `value`) VALUES (?, ?)" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "p" > [< / span > < span class = "s2" > " schema_version" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "nx" > version< / span > < span class = "p" > ]);< / span >
< / span > < span id = "__span-2-67" > < a id = "__codelineno-2-67" name = "__codelineno-2-67" href = "#__codelineno-2-67" > < / a > < span class = "w" > < / span > < span class = "p" > }< / span > < span class = "w" > < / span > < span class = "k" > else< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< / span > < span id = "__span-2-68" > < a id = "__codelineno-2-68" name = "__codelineno-2-68" href = "#__codelineno-2-68" > < / a > < span class = "w" > < / span > < span class = "k" > await< / span > < span class = "w" > < / span > < span class = "k" > this< / span > < span class = "p" > .< / span > < span class = "nx" > exec< / span > < span class = "p" > (< / span > < span class = "s2" > " CREATE TABLE IF NOT EXISTS `database_metadata` ( `key` VARCHAR(50) NOT NULL, `value` VARCHAR(255) NOT NULL DEFAULT ' ' , PRIMARY KEY (`key`))" < / span > < span class = "p" > );< / span >
< / span > < span id = "__span-2-69" > < a id = "__codelineno-2-69" name = "__codelineno-2-69" href = "#__codelineno-2-69" > < / a > < span class = "w" > < / span > < span class = "k" > await< / span > < span class = "w" > < / span > < span class = "k" > this< / span > < span class = "p" > .< / span > < span class = "nx" > setSchemaVersion< / span > < span class = "p" > (< / span > < span class = "nx" > version< / span > < span class = "p" > );< / span >
< / span > < span id = "__span-2-70" > < a id = "__codelineno-2-70" name = "__codelineno-2-70" href = "#__codelineno-2-70" > < / a > < span class = "w" > < / span > < span class = "p" > }< / span >
< / span > < span id = "__span-2-71" > < a id = "__codelineno-2-71" name = "__codelineno-2-71" href = "#__codelineno-2-71" > < / a > < span class = "w" > < / span > < span class = "p" > }< / span >
< / span > < span id = "__span-2-72" > < a id = "__codelineno-2-72" name = "__codelineno-2-72" href = "#__codelineno-2-72" > < / a > < span class = "p" > }< / span >
< / span > < / code > < / pre > < / div >
< / article >
< / div >
< script > var target = document . getElementById ( location . hash . slice ( 1 ) ) ; target && target . name && ( target . checked = target . name . startsWith ( "__tabbed_" ) ) < / script >
< / div >
< / main >
< footer class = "md-footer" >
< div class = "md-footer-meta md-typeset" >
< div class = "md-footer-meta__inner md-grid" >
< div class = "md-copyright" >
Made with
< a href = "https://squidfunk.github.io/mkdocs-material/" target = "_blank" rel = "noopener" >
Material for MkDocs
< / a >
< / div >
< / div >
< / div >
< / footer >
< / div >
< div class = "md-dialog" data-md-component = "dialog" >
< div class = "md-dialog__inner md-typeset" > < / div >
< / div >
2026-02-13 14:02:44 -07:00
< script id = "__config" type = "application/json" > { "annotate" : null , "base" : "../.." , "features" : [ "content.code.copy" ] , "search" : "../../assets/javascripts/workers/search.2c215733.min.js" , "tags" : null , "translations" : { "clipboard.copied" : "Copied to clipboard" , "clipboard.copy" : "Copy to clipboard" , "search.result.more.one" : "1 more on this page" , "search.result.more.other" : "# more on this page" , "search.result.none" : "No matching documents" , "search.result.one" : "1 matching document" , "search.result.other" : "# matching documents" , "search.result.placeholder" : "Type to start searching" , "search.result.term.missing" : "Missing" , "select.version" : "Select version" } , "version" : { "provider" : "mike" } } < / script >
2026-02-13 14:01:00 -07:00
< script src = "../../assets/javascripts/bundle.79ae519e.min.js" > < / script >
< script src = "../../assets/external/unpkg.com/mermaid@11/dist/mermaid.min.js" > < / script >
< / body >
< / html >