nsmcp::AccessAnalytics method peerSchema (protected)

 <instance of nsmcp::AccessAnalytics[i]> peerSchema db

Defined in /usr/local/ns/tcl/nsmcp/access-analytics.tcl

Additive migration also works after definition reload on a live object.

Parameters:
db (required)

Testcases:
No testcase defined.
Source code:
set found 0
set authFound 0
set agentFound 0
$db execute {SELECT name FROM pragma_table_info('nsmcp_access_requests')} row {
    if {$row(name) eq "peer"} {set found 1}
    if {$row(name) eq "authenticationState"} {set authFound 1}
    if {$row(name) eq "userAgent"} {set agentFound 1}
}
if {!$found} {
    $db execute {ALTER TABLE nsmcp_access_requests ADD COLUMN peer TEXT NOT NULL DEFAULT ''}
}
if {!$authFound} {
    $db execute {ALTER TABLE nsmcp_access_requests ADD COLUMN authenticationState TEXT NOT NULL DEFAULT 'unknown'}
}
if {!$agentFound} {
    $db execute {ALTER TABLE nsmcp_access_requests ADD COLUMN userAgent TEXT NOT NULL DEFAULT ''}
}
$db execute {
    CREATE INDEX IF NOT EXISTS nsmcp_access_requests_peer_time ON nsmcp_access_requests(peer,start);
    INSERT OR REPLACE INTO nsmcp_access_metadata VALUES('schemaVersion','5');
}
XQL Not present:
Generic, PostgreSQL, Oracle
[ hide source ] | [ make this the default ]
Show another procedure: