-
Notifications
You must be signed in to change notification settings - Fork 2
DbTable
do- edited this page Jul 15, 2025
·
34 revisions
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).
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 |
// module.exports =
{
comment: '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 */
`,
},
],
}