work in progress on custom fields
This commit is contained in:
parent
361af18384
commit
86fce404a9
29 changed files with 1088 additions and 198 deletions
|
@ -1,33 +1,33 @@
|
|||
exports.up = function(knex, Promise) {
|
||||
exports.up = (knex, Promise) => (async() => {
|
||||
const entityTypesAddNamespace = ['list', 'custom_form', 'report', 'report_template', 'user'];
|
||||
let promise = knex.schema.createTable('namespaces', table => {
|
||||
table.increments('id').primary();
|
||||
table.string('name');
|
||||
table.text('description');
|
||||
table.integer('namespace').unsigned().references('namespaces.id').onDelete('CASCADE');
|
||||
})
|
||||
.then(() => knex('namespaces').insert({
|
||||
id: 1, /* Global namespace id */
|
||||
name: 'Root',
|
||||
description: 'Root namespace'
|
||||
}));
|
||||
await knex.schema.createTable('namespaces', table => {
|
||||
table.increments('id').primary();
|
||||
table.string('name');
|
||||
table.text('description');
|
||||
table.integer('namespace').unsigned().references('namespaces.id').onDelete('CASCADE');
|
||||
});
|
||||
|
||||
await knex('namespaces').insert({
|
||||
id: 1, /* Global namespace id */
|
||||
name: 'Root',
|
||||
description: 'Root namespace'
|
||||
});
|
||||
|
||||
for (const entityType of entityTypesAddNamespace) {
|
||||
promise = promise
|
||||
.then(() => knex.schema.table(`${entityType}s`, table => {
|
||||
table.integer('namespace').unsigned().notNullable();
|
||||
}))
|
||||
.then(() => knex(`${entityType}s`).update({
|
||||
namespace: 1 /* Global namespace id */
|
||||
}))
|
||||
.then(() => knex.schema.table(`${entityType}s`, table => {
|
||||
table.foreign('namespace').references('namespaces.id').onDelete('CASCADE');
|
||||
}));
|
||||
await knex.schema.table(`${entityType}s`, table => {
|
||||
table.integer('namespace').unsigned().notNullable();
|
||||
});
|
||||
|
||||
await knex(`${entityType}s`).update({
|
||||
namespace: 1 /* Global namespace id */
|
||||
});
|
||||
|
||||
await knex.schema.table(`${entityType}s`, table => {
|
||||
table.foreign('namespace').references('namespaces.id').onDelete('CASCADE');
|
||||
});
|
||||
}
|
||||
})();
|
||||
|
||||
return promise;
|
||||
};
|
||||
|
||||
exports.down = function(knex, Promise) {
|
||||
return knex.schema.dropTable('namespaces');
|
||||
};
|
||||
exports.down = (knex, Promise) => (async() => {
|
||||
await knex.schema.dropTable('namespaces');
|
||||
})();
|
Loading…
Add table
Add a link
Reference in a new issue