登录权限管理
This commit is contained in:
parent
6d462df532
commit
b6efbb0356
|
|
@ -1,17 +0,0 @@
|
||||||
const sequelize = require('./db');
|
|
||||||
const { Region, Apartment, Room, Rental } = require('../models');
|
|
||||||
|
|
||||||
// 同步数据库表结构
|
|
||||||
const syncDatabase = async () => {
|
|
||||||
try {
|
|
||||||
console.log('正在同步数据库表结构...');
|
|
||||||
await sequelize.sync({ force: true });
|
|
||||||
console.log('数据库表结构同步成功');
|
|
||||||
} catch (error) {
|
|
||||||
console.error('数据库表结构同步失败:', error);
|
|
||||||
} finally {
|
|
||||||
await sequelize.close();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
syncDatabase();
|
|
||||||
235
sync-db.js
235
sync-db.js
|
|
@ -1,235 +0,0 @@
|
||||||
const sequelize = require('./config/db');
|
|
||||||
const { DataTypes } = require('sequelize');
|
|
||||||
|
|
||||||
// 定义 WaterBill 模型
|
|
||||||
const WaterBill = sequelize.define('WaterBill', {
|
|
||||||
id: {
|
|
||||||
type: DataTypes.INTEGER,
|
|
||||||
primaryKey: true,
|
|
||||||
autoIncrement: true
|
|
||||||
},
|
|
||||||
roomId: {
|
|
||||||
type: DataTypes.INTEGER,
|
|
||||||
allowNull: false,
|
|
||||||
references: {
|
|
||||||
model: 'rooms',
|
|
||||||
key: 'id'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
startDate: {
|
|
||||||
type: DataTypes.DATE,
|
|
||||||
allowNull: false
|
|
||||||
},
|
|
||||||
endDate: {
|
|
||||||
type: DataTypes.DATE,
|
|
||||||
allowNull: true
|
|
||||||
},
|
|
||||||
startReading: {
|
|
||||||
type: DataTypes.DECIMAL(10, 2),
|
|
||||||
allowNull: false
|
|
||||||
},
|
|
||||||
endReading: {
|
|
||||||
type: DataTypes.DECIMAL(10, 2),
|
|
||||||
allowNull: true
|
|
||||||
},
|
|
||||||
usage: {
|
|
||||||
type: DataTypes.DECIMAL(10, 2),
|
|
||||||
allowNull: true
|
|
||||||
},
|
|
||||||
unitPrice: {
|
|
||||||
type: DataTypes.DECIMAL(10, 2),
|
|
||||||
allowNull: false
|
|
||||||
},
|
|
||||||
amount: {
|
|
||||||
type: DataTypes.DECIMAL(10, 2),
|
|
||||||
allowNull: true
|
|
||||||
},
|
|
||||||
status: {
|
|
||||||
type: DataTypes.ENUM('unbilled', 'unpaid', 'paid'),
|
|
||||||
allowNull: false,
|
|
||||||
defaultValue: 'unpaid'
|
|
||||||
},
|
|
||||||
createTime: {
|
|
||||||
type: DataTypes.DATE,
|
|
||||||
defaultValue: DataTypes.NOW
|
|
||||||
},
|
|
||||||
updateTime: {
|
|
||||||
type: DataTypes.DATE,
|
|
||||||
defaultValue: DataTypes.NOW,
|
|
||||||
onUpdate: DataTypes.NOW
|
|
||||||
},
|
|
||||||
isDeleted: {
|
|
||||||
type: DataTypes.INTEGER,
|
|
||||||
allowNull: false,
|
|
||||||
defaultValue: 0
|
|
||||||
}
|
|
||||||
}, {
|
|
||||||
tableName: 'water_bills',
|
|
||||||
timestamps: false
|
|
||||||
});
|
|
||||||
|
|
||||||
// 定义 ElectricityBill 模型
|
|
||||||
const ElectricityBill = sequelize.define('ElectricityBill', {
|
|
||||||
id: {
|
|
||||||
type: DataTypes.INTEGER,
|
|
||||||
primaryKey: true,
|
|
||||||
autoIncrement: true
|
|
||||||
},
|
|
||||||
roomId: {
|
|
||||||
type: DataTypes.INTEGER,
|
|
||||||
allowNull: false,
|
|
||||||
references: {
|
|
||||||
model: 'rooms',
|
|
||||||
key: 'id'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
startDate: {
|
|
||||||
type: DataTypes.DATE,
|
|
||||||
allowNull: false
|
|
||||||
},
|
|
||||||
endDate: {
|
|
||||||
type: DataTypes.DATE,
|
|
||||||
allowNull: false
|
|
||||||
},
|
|
||||||
startReading: {
|
|
||||||
type: DataTypes.DECIMAL(10, 2),
|
|
||||||
allowNull: false
|
|
||||||
},
|
|
||||||
endReading: {
|
|
||||||
type: DataTypes.DECIMAL(10, 2),
|
|
||||||
allowNull: false
|
|
||||||
},
|
|
||||||
usage: {
|
|
||||||
type: DataTypes.DECIMAL(10, 2),
|
|
||||||
allowNull: false
|
|
||||||
},
|
|
||||||
unitPrice: {
|
|
||||||
type: DataTypes.DECIMAL(10, 2),
|
|
||||||
allowNull: false
|
|
||||||
},
|
|
||||||
amount: {
|
|
||||||
type: DataTypes.DECIMAL(10, 2),
|
|
||||||
allowNull: false
|
|
||||||
},
|
|
||||||
status: {
|
|
||||||
type: DataTypes.ENUM('unpaid', 'paid'),
|
|
||||||
allowNull: false,
|
|
||||||
defaultValue: 'unpaid'
|
|
||||||
},
|
|
||||||
createTime: {
|
|
||||||
type: DataTypes.DATE,
|
|
||||||
defaultValue: DataTypes.NOW
|
|
||||||
},
|
|
||||||
updateTime: {
|
|
||||||
type: DataTypes.DATE,
|
|
||||||
defaultValue: DataTypes.NOW,
|
|
||||||
onUpdate: DataTypes.NOW
|
|
||||||
},
|
|
||||||
isDeleted: {
|
|
||||||
type: DataTypes.INTEGER,
|
|
||||||
allowNull: false,
|
|
||||||
defaultValue: 0
|
|
||||||
}
|
|
||||||
}, {
|
|
||||||
tableName: 'electricity_bills',
|
|
||||||
timestamps: false
|
|
||||||
});
|
|
||||||
|
|
||||||
// 定义 Rental 模型
|
|
||||||
const Rental = sequelize.define('Rental', {
|
|
||||||
id: {
|
|
||||||
type: DataTypes.INTEGER,
|
|
||||||
primaryKey: true,
|
|
||||||
autoIncrement: true
|
|
||||||
},
|
|
||||||
roomId: {
|
|
||||||
type: DataTypes.INTEGER,
|
|
||||||
allowNull: false,
|
|
||||||
references: {
|
|
||||||
model: 'rooms',
|
|
||||||
key: 'id'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
tenantId: {
|
|
||||||
type: DataTypes.INTEGER,
|
|
||||||
allowNull: false,
|
|
||||||
references: {
|
|
||||||
model: 'tenants',
|
|
||||||
key: 'id'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
contractId: {
|
|
||||||
type: DataTypes.INTEGER,
|
|
||||||
allowNull: false,
|
|
||||||
references: {
|
|
||||||
model: 'contracts',
|
|
||||||
key: 'id'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
startDate: {
|
|
||||||
type: DataTypes.DATE,
|
|
||||||
allowNull: false
|
|
||||||
},
|
|
||||||
endDate: {
|
|
||||||
type: DataTypes.DATE,
|
|
||||||
allowNull: false
|
|
||||||
},
|
|
||||||
rent: {
|
|
||||||
type: DataTypes.DECIMAL(10, 2),
|
|
||||||
allowNull: false
|
|
||||||
},
|
|
||||||
deposit: {
|
|
||||||
type: DataTypes.DECIMAL(10, 2),
|
|
||||||
allowNull: false
|
|
||||||
},
|
|
||||||
status: {
|
|
||||||
type: DataTypes.ENUM('active', 'expired'),
|
|
||||||
allowNull: false,
|
|
||||||
defaultValue: 'active'
|
|
||||||
},
|
|
||||||
remark: {
|
|
||||||
type: DataTypes.TEXT,
|
|
||||||
allowNull: true
|
|
||||||
},
|
|
||||||
createTime: {
|
|
||||||
type: DataTypes.DATE,
|
|
||||||
defaultValue: DataTypes.NOW
|
|
||||||
},
|
|
||||||
updateTime: {
|
|
||||||
type: DataTypes.DATE,
|
|
||||||
defaultValue: DataTypes.NOW,
|
|
||||||
onUpdate: DataTypes.NOW
|
|
||||||
},
|
|
||||||
isDeleted: {
|
|
||||||
type: DataTypes.INTEGER,
|
|
||||||
allowNull: false,
|
|
||||||
defaultValue: 0
|
|
||||||
}
|
|
||||||
}, {
|
|
||||||
tableName: 'rentals',
|
|
||||||
timestamps: false
|
|
||||||
});
|
|
||||||
|
|
||||||
// 同步数据库模型
|
|
||||||
async function syncDatabase() {
|
|
||||||
try {
|
|
||||||
console.log('开始同步数据库模型...');
|
|
||||||
// 同步 Rental 模型
|
|
||||||
await Rental.sync({ alter: true });
|
|
||||||
console.log('Rental 模型同步成功');
|
|
||||||
// 同步 WaterBill 模型
|
|
||||||
await WaterBill.sync({ alter: true });
|
|
||||||
console.log('WaterBill 模型同步成功');
|
|
||||||
// 同步 ElectricityBill 模型
|
|
||||||
await ElectricityBill.sync({ alter: true });
|
|
||||||
console.log('ElectricityBill 模型同步成功');
|
|
||||||
console.log('数据库模型同步成功');
|
|
||||||
process.exit(0);
|
|
||||||
} catch (error) {
|
|
||||||
console.error('数据库模型同步失败:', error);
|
|
||||||
process.exit(1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 执行同步
|
|
||||||
syncDatabase();
|
|
||||||
Loading…
Reference in New Issue