4.3.4.5. 创建数据库

createDbCubaDbCreation 类型的任务,通过执行相应的数据库脚本来创建应用程序数据库。定义在 core 模块。

如果使用应用程序属性配置数据源,下面这些参数会自动从应用程序属性中获取,所以任务定义可以为空:

  1. task createDb(dependsOn: assemble, description: 'Creates local database', type: CubaDbCreation) {
  2. }

当然也可以显式的设置这些参数:

  • storeName - 附加数据存储的名称。如果未设置,任务会在主数据存储上运行。

  • dbms数据库类型hsqlpostgresmssql 或者 oracle

  • dbName – 数据库名称

  • dbUser – 数据库用户名

  • dbPassword – 用户的密码

  • host – 数据库服务的地址和端口(可选),使用 host[:port] 格式。如果没设置,则会使用 localhost

  • connectionParams - 可选的连接参数,添加到连接 URL 最后面。

  • masterUrl – 数据库连接串 URL。如果没设置,默认会根据 dbmshost 生成。

  • dropDbSql – 删除数据库的 SQL 命令。如果没设置,默认会根据 dbms 生成。

  • createDbSql – 创建数据库的 SQL 命令。如果没设置,默认会根据 dbms 生成。

  • driverClasspath – 包含 JDBC 驱动的 JAR 包文件列表。在 Linux 系统使用 “:” 分隔列表里的文件,在 Windows 系统使用 “;” 分隔。如果没设置,系统会用当前模块的 jdbc 配置所需要的依赖。使用 Oracle 的时候需要显式的定义 driverClasspath,因为 Oracle 的 JDBC 驱动没有能自动下载的可用依赖,需要手动配置。

  • oracleSystemPassword – Oracle 的 SYSTEM 用户密码。

PostgreSQL 示例:

  1. task createDb(dependsOn: assemble, description: 'Creates local database', type: CubaDbCreation) {
  2. dbms = 'postgres'
  3. dbName = 'sales'
  4. dbUser = 'cuba'
  5. dbPassword = 'cuba'
  6. }

微软 SQL Server 示例:

  1. task createDb(dependsOn: assemble, description: 'Creates local database', type: CubaDbCreation) {
  2. dbms = 'mssql'
  3. dbName = 'sales'
  4. dbUser = 'sa'
  5. dbPassword = 'saPass1'
  6. connectionParams = ';instance=myinstance'
  7. }

Oracle 示例:

  1. task createDb(dependsOn: assemble, description: 'Creates database', type: CubaDbCreation) {
  2. dbms = 'oracle'
  3. host = '192.168.1.10'
  4. dbName = 'orcl'
  5. dbUser = 'sales'
  6. dbPassword = 'sales'
  7. oracleSystemPassword = 'manager'
  8. driverClasspath = "$tomcatDir/lib/ojdbc6.jar"
  9. }