Database Installation Instructions
-
-
作者: Tony
-
5507
- Wx Share
-
考勤与薪酬管理系统
考勤、薪酬、门禁、多功能集成系统,助力企业降本增效! Details
整合自动化考勤与薪酬计算, 高度安全的流程化,保障薪酬计算安全可控, 请假排班,多分支,连锁,分销, 多账目,功能全面。
DGX HRMS 数据库服务部署

DataBaseSetupV32 VERSION: V3.2.2025.04 数据库初始化
旧版本 DataBaseCreateCoreV3_ENHANCE 2024.05
**DGX HRMS **
DGX Attendance & Salary HRMS人力资源与薪酬管理系统 数据库初始化
取消证书授权安装
数据库安装:取消需要使用证书授权安装。
项目目的和作用
目标:为客户初始化部署, 创建初始化数据库,
Objective: Initialize deployment for customers and create an initial database.
Download Deploy exe from :
https://github.com/lawtatfaitony/DataBaseSetupV32
LICENSE证书安装
需要版权方授权的证书文件复制到应用程序根目录下: AppAuth.key 或者系统安装盘下c:
第一步 目标数据库
必须检查连接串是否正常链接,特别数据库是不是空白的目标数据库。
[DATABASE CONNECTION STRING : Data Source=(local)\DATASRV;Initial Catalog=DataGuardX;
User ID=sasa;Password=0*1*3;
Connect Timeout=300;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultipleActiveResultSets=true;]

安装秘诀: 注意黄色文字, 按 [ENTER] 是默认操作。
第二步 数据库账号 admin
MSSQL 2019/2016 SERVER 先创建一个账号 admin (或者其他名称), 并且必须设置 架构Scheme = dbo
第三步 数据库存储路径
创建一个空白的数据库,注意指定具体的数据库存储路径 如: D:\DataBase
第四步 空白数据与程序设置
检查账户Admin是不是数据库所有者,即系schema还不是 dbo
1、设置空白数据库
先在MS SQL 2016/1029//2022 的STUDIO 数据库管理工具打开链接后,

2、设置连接串
在 文件 中 appsettings.json,设置对应的数据库连接
3、配置appsetting.json
位于应用程序下的根目录,用于设置运行相关的数据。
//节点定义创建的用户
"systemUserList": [
{
"userName": "Supervisor", //默认的密码是 admin888
"email": "Supervisor@abc.com" //这里可以改为公司的真实EMAIL
},
{
"userName": "Admin", //默认的密码是 admin888
"email": "Admin@abc.com" //这里可以改为公司的真实EMAIL
}
]
4、检查操作系统语言
如果界面出现乱码,可能原因是:
CMD没有设置uft-8编码显示.
系统没有支持的语言,建议在系统设置->区域语言->添加英文、简体、繁体。
运行
命令方式
$ DataBaseCoreCoreV3 "20211210" , "IN60006"
//第一个参数是总公司ID,必须少于等于8位的数字。
//第二个参数是行业ID, 行业ID的参考来源 JsonData/Industry.zh-HK.json 或者其他语言版本 或者 行业对照表.csv。
Bat文件方式
或者 通过存入bat文件方式: 参数输入形式修改参数后运行.bat
先打开 CMD ,然后输入: DataBaseCreateCoreV3.bat
DataBaseCreateCoreV3.bat 文件内容如下:
rem PARAMETERS 1: MainComId 2:IndustryId
DataBaseCreateCoreV3 "999901" "IN60006"
上述第一个参数书MainComID,第二个是行业参数ID,具体参考文件:行业对照表.csv
这样可以特定生成自定义的MainComID,
开始运行
确认运行提示的信息
包括 数据服务链接串和Language.Jason的修订日期
输入行业编号

ENTER 确定创建管理员账户
按[ENTER] 确认是否创建系统操作账户,并且在根目录下生成txt文件保存系统操作账户。

以下是操作过程中注意的问题:
如何还原数据库
如果创建一个种子数据库,以便每次部署都用这个数据库的情况,则需要做一下动作:
第一步:先复制 MDF和LOG 文件,然后附加到本地数据.如果是BAK备份文件,则要选择还原时候的Option选择强制OverWrite等等前两个option都勾选.
第二步:附加数据库的同时会把来源的数据库用户也会复制过来的,此时可以强制删除,但可以会把本地的数据库服务器的用户都删除掉,则可以先把数据库当前的admin用户降级到guest后就可以删除当前的数据库用户而不会导致删除DB Server 的系统用户. 目的改变架构schema所有者架空Admin用户才可以删除的.
如:
USE DataGuardXcore;
--DROP USER [admin]; 这样删除不行的
ALTER USER [admin] WITH DEFAULT_SCHEMA = guest; 先降级后再删除 目的改变架构schema所有者
然后
DROP USER [admin];
MainComId总公司ID规则
MainComId总公司ID生成规则与技巧2021年6月28日: 则生成的ID是 210627
年度月度日 的数字合并就是公司的ID.
由于太长的ID不方便,如果同一天安装两个,则会出现ID冲突,解决这个问题 可以通过输入特定参数安装.
输入预设的总公司ID和对应的行业
参数输入形式修改参数后运行.bat
rem PARAMETERS 1: MainComId 2:IndustryId
DataBaseCreateCoreV3 "999901" "IN60006"
数据库用户角色
数据库所有者DBO
账号和密码保存在一个txt文件
然后会创建一个txt文件保存对应的账号和密码的.
系统管理员和总公司账户的区别

系统管理员是管理整个系统的最高权限,而总公司账户是用于管理总公司下的所有资源,为何称为[总公司账户]:由于以公司为单位下还可以有分公司的. 例如:建筑行业里面: 分多个分公司就是旗下的二判,二判可以是由总公司分拨资源提供系统以管理旗下的员工,当然如果是CLOUD概念下,可以由总公司架构一个云端系统提供给旗下二判,以二判为独立公司自我管理公司资源.
The system administrator has the highest authority to manage the entire system, while the head office account is used to manage all resources under the head office. Why is it called the head office account? Because a company can have branches under it. For example, in the construction industry, multiple branches are the sub-contractors under it. The sub-contractors can be provided with resources by the head office to manage their employees. Of course, if it is under the CLOUD concept, the head office can build a cloud system to provide it to the sub-contractors under it, so that the sub-contractors can manage company resources as independent companies.
同步语言包Language.json
文件在: 应用程序 JsonData/Language.json 这个文件来自LangMXcore应用程序的 jsonData/下面
默认资源库在Language.json的配置语言标识

上述黄色字的两行都是选择项,一般情况下都是[ENTER]确定。 Language.json文件数据同步到数据库的每一条记录都会慢一点的。运行过程中,可以Sceen Cut (Win+Shift+S),查阅是否异常。
执行 SychronizeM 同步语言包
执行 SychronizeM.EXE 同步语言包D:\STAR\SychronizeM

如果重建一次的操作
如果一旦操作失败或者其他原因导致要重新一操作一次,可以清空数据库,而无需重新创建建数据库。
第一步:清空约束或数据
在删除所有表的前提是要清空约束或数据才能删除的:
--若要清空 MSSQL 2019 中所有表的数据,您可以使用以下 T-SQL 语句:
c --执行这句就可以:删除约束
EXEC sp_MSForEachTable 'DELETE FROM ?' --删除所有数据
EXEC sp_MSForEachTable 'ALTER TABLE ? CHECK CONSTRAINT ALL' --恢复约束
这些 T-SQL 语句将会逐一对每一个表执行暂时禁用约束、删除数据、重新启用约束的操作,从而清空所有表的数据。请谨慎使用这个操作,因为删除数据后将无法恢复。
第二步:删除由用户建立的表
在 MSSQL 2019 中,您可以使用以下 T-SQL 语句来删除所有由用户建立的表:
USE [YourDatabaseName];
DECLARE @sql NVARCHAR(MAX) = N'';
SELECT @sql += 'DROP TABLE ' + QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME) + ';'
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE' AND TABLE_SCHEMA <> 'sys';
EXEC sp_executesql @sql;

请确保将 [YourDatabaseName] 替换为您的数据库名称。这个 T-SQL 语句将会动态生成一条包含删除所有用户建立表格的 SQL 语句,然后执行这些语句来删除所有用户建立的表格。请谨慎使用这个操作,因为删除表格后数据将无法恢复。
快捷: 清除约束和清除用户表.sql 这个文件点击执行多次直到提示完成,就可以切底删除用户建立的数据库表和约束。
创建作业备份
第一步: 创建 存储过程
SP_BACKUPDB.sql
通过 sqlCMD命令执行 本分作业, 本这个sqlCMD写成批处理.bat 在Windows 的 [TaskSchedule 任务调度] 设置每日执行此bat文件,实现每日备份.
--首先在 MS SQL SERVER 创建 STORE PROCEDURE
USE [DataGuardXcore]
GO
/****** Object: StoredProcedure [dbo].[SP_BACKUPDB] Script Date: 15/9/2024 0:11:10 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[SP_BACKUPDB]
AS
DECLARE @strBackup nvarchar(200)
DECLARE @strBackupIshopX nvarchar(200)
--DECLARE @strToday nvarchar(8)
--DECLARE @strTime nvarchar(8)
--SELECT @strToday = CONVERT(CHAR(8), GETDATE(), 112)
--SELECT @strTime = LEFT(CONVERT(CHAR(8), GETDATE(), 108), 2) + SUBSTRING(CONVERT(CHAR(8), GETDATE(), 108), 4, 2) + RIGHT(CONVERT(CHAR(8), GETDATE(), 108), 2)
DECLARE @str varchar(200)
set @str = replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','')
SET @strBackup = 'C:\DataBaseBAK\DataGuardXcore_' + @str + '.bak'
BACKUP DATABASE DataGuardXcore
TO DISK= @strBackup
WITH FORMAT
第二步: BAT 命令 执行 sqlCMD
然后 写一个 BAT 命令 执行 sqlCMD 命令, 具体的bat文件内容如下:
----
It is recommended to select outline browsing!
Author:Tony Law
Email: caihaili82@gmail.com
鼎辉计算机系统