4.3.4.5. createDb

createDb - задача типа CubaDbCreation, создающая базу данных приложения путем выполнения соответствующих скриптов. Объявляется в модуле core.

Если источник данных сконфигурирован свойствами приложения, то параметры, описанные ниже, автоматически получаются из свойств приложения, поэтому определение задачи может быть пустым:

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

Следующие параметры могут быть заданы явно:

  • storeName - имя дополнительного хранилища данных. Если не указано, то задача выполняет скрипты основного хранилища.

  • dbms - тип СУБД, задаваемый в виде строки hsql, postgres, mssql, или oracle.

  • dbName - имя базы данных.

  • dbUser - имя пользователя СУБД.

  • dbPassword - пароль пользователя СУБД.

  • host - хост и, опционально, порт СУБД в формате host[:port]. Если не задан, используется localhost.

  • connectionParams - опциональная строка параметров которая будет добавлена в конец URL подключения.

  • masterUrl - URL для подключения при создании БД. Если не задан, используется значение по умолчанию, зависящее от типа СУБД и параметра host.

  • dropDbSql - команда SQL для удаления БД. Если не задана, используется значение по умолчанию, зависящее от типа СУБД.

  • createDbSql - команда SQL для создания БД. Если не задана, используется значение по умолчанию, зависящее от типа СУБД.

  • driverClasspath - список JAR файлов, содержащих JDBC драйвер. Элементы списка разделяются символом ":" на Linux и символом ";" на Windows. Если не задан, используются зависимости, входящие в конфигурацию jdbc данного модуля. Явное задание driverClasspath актуально при использовании Oracle, т.к. его JDBC драйвер не присутствует в зависимостях.

  • oracleSystemPassword - при использовании Oracle пароль пользователя SYSTEM.

    Пример для PostgreSQL:

    task createDb(dependsOn: assemble, description: 'Creates local database', type: CubaDbCreation) {
        dbms = 'postgres'
        dbName = 'sales'
        dbUser = 'cuba'
        dbPassword = 'cuba'
    }

    Пример для MS SQL Server:

    task createDb(dependsOn: assemble, description: 'Creates local database', type: CubaDbCreation) {
        dbms = 'mssql'
        dbName = 'sales'
        dbUser = 'sa'
        dbPassword = 'saPass1'
        connectionParams = ';instance=myinstance'
    }

    Пример для Oracle:

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