DbTable - do-/node-doix-db GitHub Wiki
DbTable
is a DbRelation descendant describing a regular relational database table.
As for all DbObject's descendants, instances of this class should only be created by calling DbSchema
's create method (normally, in the course of adding).
Properties
Name | Type | Description |
---|---|---|
data |
[Object] / function |
the list of records that must be present in that table or a function returning such list being called with the DbTable instance available as this |
triggers |
[DbTrigger] | the list of table's triggers |
Sample description
// module.exports =
{
label: 'Some table',
columns: {
id: 'int // PK',
name: 'text // Technical name',
label: 'text // Human readable name',
priority: 'int // Bigger values first',
old_slack: null, // think DROP COLUMN IF EXISTS
},
pk: 'id',
data: [ // mandatory data for system dictionaries
{id: 1, name: 'admin'},
{id: 2, name: 'user'},
],
keys: {
bad_idea : null, // this index will be removed, if not yet
label : 'label', // like {parts: ['label']},
priority : ['priority DESC', 'label'], // like {parts: ['priority DESC', 'label']},
a_very_custom_index : {
// localName : ['ix_some_table_cust'],
parts : ['SUBSTR(name, 1, 10) DESC NULLS FIRST'],
options : [
'UNIQUE',
'USING BTREE',
'WHERE priority = 10',
],
},
},
triggers: [
{
// options: 'CONSTRAINT',
phase : 'BEFORE INSERT OR UPDATE',
action : 'FOR EACH ROW',
sql : `
/* trigger body */
`,
},
],
}