登录权限管理
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