| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156 |
- 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('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}",密码:"ymfe.org"`
- ); // eslint-disable-line
- process.exit(0);
- },
- function(err) {
- throw new Error(`初始化管理员账号 "${yapi.WEBCONFIG.adminAccount}" 失败, ${err.message}`); // eslint-disable-line
- }
- );
- })
- .catch(function(err) {
- throw new Error(err.message);
- });
- }
- install();
|