shadowsocks-manager
Version:
A shadowsocks manager tool for multi user and traffic control.
62 lines (58 loc) • 1.71 kB
JavaScript
const knex = appRequire('init/knex').knex;
const tableName = 'group';
const addDefaultGroup = async () => {
const data = await knex('group')
.where({ id: 0 })
.then(s => s[0]);
if (!data) {
const id = await knex('group').insert(
{ id: 0, name: '默认组', comment: '系统默认分组' },
'id',
);
if (id[0] !== 0) {
await knex('group')
.update({ id: 0 })
.where({ id: id[0] });
}
}
return;
};
const createTable = async () => {
const exist = await knex.schema.hasTable(tableName);
if (exist) {
await addDefaultGroup();
const hasShowNotice = await knex.schema.hasColumn(tableName, 'showNotice');
if (!hasShowNotice) {
await knex.schema.table(tableName, function(table) {
table.integer('showNotice').defaultTo(1);
});
}
const hasOrder = await knex.schema.hasColumn(tableName, 'order');
if (!hasOrder) {
await knex.schema.table(tableName, function(table) {
table.string('order');
});
}
const hasMultiAccount = await knex.schema.hasColumn(
tableName,
'multiAccount',
);
if (!hasMultiAccount) {
await knex.schema.table(tableName, function(table) {
table.integer('multiAccount').defaultTo(0);
});
}
return;
}
await knex.schema.createTable(tableName, function(table) {
table.increments('id');
table.string('name');
table.string('comment');
table.integer('showNotice').defaultTo(1);
table.string('order');
table.integer('multiAccount').defaultTo(0);
});
await addDefaultGroup();
return;
};
exports.createTable = createTable;