Added auth functionality, initial work with views and field types
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
exports.up = function (knex) {
|
||||
return knex.schema
|
||||
.createTable('object_definitions', (table) => {
|
||||
table.uuid('id').primary().defaultTo(knex.raw('(UUID())'));
|
||||
table.string('apiName', 255).notNullable().unique();
|
||||
table.string('label', 255).notNullable();
|
||||
table.string('pluralLabel', 255);
|
||||
table.text('description');
|
||||
table.boolean('isSystem').defaultTo(false);
|
||||
table.boolean('isCustom').defaultTo(true);
|
||||
table.timestamps(true, true);
|
||||
|
||||
table.index(['apiName']);
|
||||
})
|
||||
.createTable('field_definitions', (table) => {
|
||||
table.uuid('id').primary().defaultTo(knex.raw('(UUID())'));
|
||||
table.uuid('objectDefinitionId').notNullable();
|
||||
table.string('apiName', 255).notNullable();
|
||||
table.string('label', 255).notNullable();
|
||||
table.string('type', 50).notNullable(); // String, Number, Date, Boolean, Reference, etc.
|
||||
table.integer('length');
|
||||
table.integer('precision');
|
||||
table.integer('scale');
|
||||
table.string('referenceObject', 255);
|
||||
table.text('defaultValue');
|
||||
table.text('description');
|
||||
table.boolean('isRequired').defaultTo(false);
|
||||
table.boolean('isUnique').defaultTo(false);
|
||||
table.boolean('isSystem').defaultTo(false);
|
||||
table.boolean('isCustom').defaultTo(true);
|
||||
table.integer('displayOrder').defaultTo(0);
|
||||
table.timestamps(true, true);
|
||||
|
||||
table
|
||||
.foreign('objectDefinitionId')
|
||||
.references('id')
|
||||
.inTable('object_definitions')
|
||||
.onDelete('CASCADE');
|
||||
table.unique(['objectDefinitionId', 'apiName']);
|
||||
table.index(['objectDefinitionId']);
|
||||
});
|
||||
};
|
||||
|
||||
exports.down = function (knex) {
|
||||
return knex.schema
|
||||
.dropTableIfExists('field_definitions')
|
||||
.dropTableIfExists('object_definitions');
|
||||
};
|
||||
Reference in New Issue
Block a user