fork from bc4552c5a8
This commit is contained in:
155
server/install.js
Normal file
155
server/install.js
Normal file
@@ -0,0 +1,155 @@
|
||||
const fs = require('fs-extra');
|
||||
const yapi = require('./yapi.js');
|
||||
const commons = require('./utils/commons');
|
||||
const dbModule = require('./utils/db.js');
|
||||
const userModel = require('./models/user.js');
|
||||
const mongoose = require('mongoose');
|
||||
|
||||
yapi.commons = commons;
|
||||
yapi.connect = dbModule.connect();
|
||||
|
||||
function install() {
|
||||
let exist = yapi.commons.fileExist(yapi.path.join(yapi.WEBROOT_RUNTIME, 'init.lock'));
|
||||
|
||||
if (exist) {
|
||||
throw new Error(
|
||||
'init.lock文件已存在,请确认您是否已安装。如果需要重新安装,请删掉init.lock文件'
|
||||
);
|
||||
}
|
||||
|
||||
setupSql();
|
||||
}
|
||||
|
||||
function setupSql() {
|
||||
let userInst = yapi.getInst(userModel);
|
||||
let passsalt = yapi.commons.randStr();
|
||||
let result = userInst.save({
|
||||
username: yapi.WEBCONFIG.adminAccount.substr(0, yapi.WEBCONFIG.adminAccount.indexOf('@')),
|
||||
email: yapi.WEBCONFIG.adminAccount,
|
||||
password: yapi.commons.generatePassword(yapi.WEBCONFIG.adminPassword || "ymfe.org", passsalt),
|
||||
passsalt: passsalt,
|
||||
role: 'admin',
|
||||
add_time: yapi.commons.time(),
|
||||
up_time: yapi.commons.time()
|
||||
});
|
||||
|
||||
yapi.connect
|
||||
.then(function() {
|
||||
let userCol = mongoose.connection.db.collection('user');
|
||||
userCol.createIndex({
|
||||
username: 1
|
||||
});
|
||||
userCol.createIndex(
|
||||
{
|
||||
email: 1
|
||||
},
|
||||
{
|
||||
unique: true
|
||||
}
|
||||
);
|
||||
|
||||
let projectCol = mongoose.connection.db.collection('project');
|
||||
projectCol.createIndex({
|
||||
uid: 1
|
||||
});
|
||||
projectCol.createIndex({
|
||||
name: 1
|
||||
});
|
||||
projectCol.createIndex({
|
||||
group_id: 1
|
||||
});
|
||||
|
||||
let logCol = mongoose.connection.db.collection('log');
|
||||
logCol.createIndex({
|
||||
uid: 1
|
||||
});
|
||||
|
||||
logCol.createIndex({
|
||||
typeid: 1,
|
||||
type: 1
|
||||
});
|
||||
|
||||
let interfaceColCol = mongoose.connection.db.collection('interface_col');
|
||||
interfaceColCol.createIndex({
|
||||
uid: 1
|
||||
});
|
||||
interfaceColCol.createIndex({
|
||||
project_id: 1
|
||||
});
|
||||
|
||||
let interfaceCatCol = mongoose.connection.db.collection('interface_cat');
|
||||
interfaceCatCol.createIndex({
|
||||
uid: 1
|
||||
});
|
||||
interfaceCatCol.createIndex({
|
||||
project_id: 1
|
||||
});
|
||||
|
||||
let interfaceCaseCol = mongoose.connection.db.collection('interface_case');
|
||||
interfaceCaseCol.createIndex({
|
||||
uid: 1
|
||||
});
|
||||
interfaceCaseCol.createIndex({
|
||||
col_id: 1
|
||||
});
|
||||
interfaceCaseCol.createIndex({
|
||||
project_id: 1
|
||||
});
|
||||
|
||||
let interfaceCol = mongoose.connection.db.collection('interface');
|
||||
interfaceCol.createIndex({
|
||||
uid: 1
|
||||
});
|
||||
interfaceCol.createIndex({
|
||||
path: 1,
|
||||
method: 1
|
||||
});
|
||||
interfaceCol.createIndex({
|
||||
project_id: 1
|
||||
});
|
||||
|
||||
let groupCol = mongoose.connection.db.collection('group');
|
||||
groupCol.createIndex({
|
||||
uid: 1
|
||||
});
|
||||
groupCol.createIndex({
|
||||
group_name: 1
|
||||
});
|
||||
|
||||
let avatarCol = mongoose.connection.db.collection('avatar');
|
||||
avatarCol.createIndex({
|
||||
uid: 1
|
||||
});
|
||||
|
||||
let tokenCol = mongoose.connection.db.collection('token');
|
||||
tokenCol.createIndex({
|
||||
project_id: 1
|
||||
});
|
||||
|
||||
let followCol = mongoose.connection.db.collection('follow');
|
||||
followCol.createIndex({
|
||||
uid: 1
|
||||
});
|
||||
followCol.createIndex({
|
||||
project_id: 1
|
||||
});
|
||||
|
||||
result.then(
|
||||
function() {
|
||||
fs.ensureFileSync(yapi.path.join(yapi.WEBROOT_RUNTIME, 'init.lock'));
|
||||
console.log(
|
||||
`初始化管理员账号成功,账号名:"${yapi.WEBCONFIG.adminAccount}",密码:${yapi.WEBCONFIG.adminPassword || "ymfe.org"}"`
|
||||
); // eslint-disable-line
|
||||
process.exit(0);
|
||||
},
|
||||
function(err) {
|
||||
throw new Error(`初始化管理员账号 "${yapi.WEBCONFIG.adminAccount}" 失败, ${err.message}`);
|
||||
}
|
||||
);
|
||||
})
|
||||
.catch(function(err) {
|
||||
throw new Error(err.message);
|
||||
});
|
||||
}
|
||||
|
||||
install();
|
||||
Reference in New Issue
Block a user