8. 数据库配置
提示
Admin.NET 默认以 codefirst 建库建表,代码优先。数据库配置文件在应用层 Configuration 文件夹下面 Database.json 配置文件里面。直接修改数据库类型和数据库连接字符串,记得重新生成解决方案让配置生效,程序启动自动生成数据库和种子数据,不需要任何 sql 脚本文件。
提示
若实体或者种子数据没有发生变化,可以在生成数据后将配置改为 false,比如 数据库初始化EnableInitDb:false,库表结构初始化EnableInitTable:false, 种子数据初始化EnableInitSeed:false。否则每次启动服务会冲掉数据库已有数据。
提示
若项目中库表和种子数据文件特别多,则开启库表和种子初始化开关后,可以只在更新的库表和种子类上面贴特性 [IncreTable],保证只更新这个表和种子数据文件,以提升更新、启动速度。
Admin.NET 默认数据库类型 Sqlite,路径为项目 Admin.NET.Web.Entry 下面 DataSource=./Admin.NET.db, 在应用层 Configuration 文件夹下面 Database.json 配置文件里面自行修改。根据业务需要可自动更换各种数据库,只需要修改数据库类型和连接字符串即可,系统自动创建数据库表,无需任何 SQL 脚本文件。
{
  // 详细数据库配置见SqlSugar官网(第一个为默认库)
  "DbConnection": {
    "EnableConsoleSql": true, // 启用控制台打印SQL
    "ConnectionConfigs": [
      {
        //"ConfigId": "1300000000001", // 默认库标识-禁止修改
        "DbType": "Sqlite", // MySql、SqlServer、Sqlite、Oracle、PostgreSQL、Dm、Kdbndp、Oscar、MySqlConnector、Access、OpenGauss、QuestDB、HG、ClickHouse、GBase、Odbc、Custom
        "ConnectionString": "DataSource=./Admin.NET.db", // 库连接字符串
        //"SlaveConnectionConfigs": [ // 读写分离/主从
        // {
        //  "HitRate": 10,
        //  "ConnectionString": "DataSource=./Admin.NET1.db" // 从库1
        // },
        // {
        //  "HitRate": 10,
        //  "ConnectionString": "DataSource=./Admin.NET2.db" // 从库2
        // }
        //],
        "DbSettings": {
          "EnableInitDb": false, // 启用库初始化-若实体没有变化则关闭以提升启动速度
          "EnableDiffLog": false, // 启用库表差异日志
          "EnableUnderLine": false // 启用驼峰转下划线
        },
        "TableSettings": {
          "EnableInitTable": false, // 启用表初始化-若实体没有变化则关闭以提升启动速度
          "EnableIncreTable": false // 启用表增量更新-特性[IncreTable]
        },
        "SeedSettings": {
          "EnableInitSeed": false, // 启用种子初始化-若种子没有变化则关闭以提升启动速度
          "EnableIncreSeed": false // 启用种子增量更新-特性[IncreSeed]
        }
      }
    ]
  }
}- 数据库连接字符串(其他库类型参考 https://www.donet5.com/Home/Doc)
PORT=5432;DATABASE=adminnet;HOST=localhost;PASSWORD=123456;USER ID=postgres
server=.;uid=sa;pwd=123456;database=adminnet
server=localhost;Database=adminnet;Uid=root;Pwd=123456;
支持的数据库,但不限以下:
- MySql
- SqlServer
- Sqlite
- Oracle
- postgresql
- 达梦
- 人大金仓
- 海量数据库Vastbase
- 神通数据库
- 瀚高
- 华为 GaussDB
- 南大通用 GBase
- TDSQL
- ......强烈推荐数据库 PostgreSQL
世界上最先进的开源关系数据库https://www.postgresql.org/ ,数据量越大越牛逼,同时具备各种数据处理插件,比如GIS插件 PostGIS、时序插件 Timescale等。