8.4. Особенности MySQL
JDBC-драйвер MySQL не распространяется в составе CUBA Studio в связи с его лицензией, поэтому его нужно установить отдельно:
-  Загрузите архив с драйвером со страницы https://dev.mysql.com/downloads/connector/j 
-  Извлеките JAR-файл и переименуйте его в mysql-connector-java.jar
-  Положите JAR-файл в каталог ~/.haulmont/studio/lib/и в подкаталогlibустановленного сервера Tomcat
-  После этого остановите Studio и демона Gradle, выполнив в командной строке gradle --stop, а затем снова запустите Studio
| 
        Tip 
       | Если в вашей базе данных используется кодировка, отличная от UTF-8, некоторые скрипты фреймворка не смогут быть выполнены. В этом случае необходимо изменить свойства базы данных Charset и Collation name, передав следующие параметры подключения в поле Connection params в окне редактирования свойств проекта:  | 
MySQL не поддерживает частичные (partial) индексы, поэтому единственная возможность создать ограничение уникальности для soft deleted сущности - это использовать в составе индекса колонку DELETE_TS. Однако, существует другая проблема: MySQL позволяет иметь несколько NULLs в колонке с ограничением уникальности. Так как стандартная колонка DELETE_TS является nullable, она не может быть использована в уникальном индексе. Рекомендуется следующий способ создания уникальных ограничений для сущностей с мягким удалением:
-  Создайте в таблице колонку DELETE_TS_NNс параметром not null и значением по умолчанию:create table DEMO_CUSTOMER ( ... DELETE_TS_NN datetime(3) not null default '1000-01-01 00:00:00.000', ... )
-  Создайте триггер, изменяющий DELETE_TS_NNкогда меняетсяDELETE_TS:create trigger DEMO_CUSTOMER_DELETE_TS_NN_TRIGGER before update on DEMO_CUSTOMER for each row if not(NEW.DELETE_TS <=> OLD.DELETE_TS) then set NEW.DELETE_TS_NN = if (NEW.DELETE_TS is null, '1000-01-01 00:00:00.000', NEW.DELETE_TS); end if
-  Создайте уникальный индекс, включающий в себя уникальные колонки и DELETE_TS_NN:create unique index IDX_DEMO_CUSTOMER_UNIQ_NAME on DEMO_CUSTOMER (NAME, DELETE_TS_NN)