вторник, 23 ноября 2021 г.

Flyway baseline для чего

Нужно это когда есть уже какая-то мощная бд, старый проект с кучей скриптов, которые ты понятия не имеешь как и чего делают.

Берется рабочая бд прода, генерируется по ней ddl.
Создается свежий baseline файл запихивается туда весь ddl.
Baseline помечается следующей версией бд -> B2__<имя файла>.sql
Каждый скрипт миграции, цифра которого будет ниже baseline файла будет помечен как ignored.
ах да это всё работает только если в бд нет следов запуска флайфэя, ну в общем это такой инит скрипт уже существующей бд, всё. Ну я бы старые миграции запихнул в архив папку рядом, вдруг чего понадобиться. 


только у меня нифига не заработало, файлы что были ниже B2, V1_0__file.sql например всё равно отрабатывали, может еще чего упустил, позже гляну


понедельник, 22 ноября 2021 г.

Spring boot создание init скрипта по существующему набору Enity


spring.jpa.properties.javax.persistence.schema-generation.scripts.action=create

spring.jpa.properties.javax.persistence.schema-generation.scripts.create-target=create.sql

spring.jpa.properties.javax.persistence.schema-generation.scripts.create-source=metadata

воскресенье, 5 января 2020 г.

nano text editor tab size

У меня была проблема с валидацией yaml файлов, которые были созданы при помощи nano редактора. Это решение мне помогло.
Edit your ~/.nanorc file (or create it) and add:
set tabsize 4
set tabstospaces

пятница, 5 апреля 2019 г.

install macOs on ubuntu linux

https://medium.com/@twister.mr/installing-macos-to-virtualbox-1fcc5cf22801

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

суббота, 12 сентября 2015 г.

Приоритетность css стилей

  1. Внутренние стили (стили, которые определяются для элемента с помощью глобального атрибута style)
  2. Встроенные стили (стили, которые определены элементом style)
  3. Внешние стили (стили, которые импортируются при помощи элемента link)
  4. Пользовательские стили (стили, которые были определены пользователем)
  5. Браузерные стили (стили по умолчанию, которые применяются браузером)

пятница, 17 октября 2014 г.

Hibernate @ManyToMany object binding

We need to store reason reject list in limitNUWaste object.

@Entity
public class LimitNUWaste {
 @ManyToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
    private Set<LimitRejectReason> rejectReasonList = new HashSet<LimitRejectReason>(0);
}

@Entity
public class LimitRejectReason {
    private String nameReason;

    @ManyToMany(fetch = FetchType.LAZY, mappedBy = "rejectReasonList")
    private Set<LimitNUWaste> limitNUWasteList = new HashSet<LimitNUWaste>(0);
}

Result - we have third table "limitnuwaste_reject_reason_list":

Field Type Null Key Default
limitnuwaste_list bigint(20) NO PRI NULL
reject_reason_list bigint(20) NO PRI NULL

четверг, 2 октября 2014 г.

Applet blocked by security settings

1)Необходимо найти программу jcontrol в нашей системе, запустить эту программу от того же самого пользователя, под которым мы запускаем браузер, то есть пользователь с обычными правами, не админ, не тот же root.
2)Выбираем вкладку security.
3)Выставляем уровень безопасности на medium.
4)Добавляем в список исключений адрес страницы сайта, на котором расположен так необходимый апплет.

пятница, 18 июля 2014 г.

Error filling print... Font 'Arial' is not available to the JVM. See the Javadoc for more details.

Проблема решилась так:
apt-get install ttf-mscorefonts-installer
Копируем все ttf файлы из папки /usr/share/fonts/truetype/msttcorefonts в директорию нашего любимого jdk - JAVA_HOME/jre/lib/fonts
Перезапускаем iReport, открываем наш документ и всё как надо.)

четверг, 10 июля 2014 г.

Отличия Calendar.HOUR_OF_DAY от Calendar.HOUR

Calendar.HOUR = Field number for get and set indicating the hour of the morning or afternoon. HOUR is used for the 12-hour clock. E.g., at 10:04:15.250 PM the HOUR is 10.

Calendar.HOUR_OF_DAY = Field number for get and set indicating the hour of the day. HOUR_OF_DAY is used for the 24-hour clock. E.g., at 10:04:15.250 PM the HOUR_OF_DAY is 22.

пятница, 9 мая 2014 г.

between operator mysql

Use beetween operator in mysql correctly, that use column's indexes .
Example of great correctly query:
SELECT * FROM news
  WHERE created_at BETWEEN STR_TO_DATE('2008-08-14 00:00:00', '%Y-%m-%d %H:%i:%s')
  AND STR_TO_DATE('2008-08-23 23:59:59', '%Y-%m-%d %H:%i:%s');

воскресенье, 15 декабря 2013 г.

Процесс загрузки java классов.

1) Системный загрузчик попытается поискать в кеше класс Student.
_1.1) Если класс найден, загрузка окончена.
_1.2) Если класс не найден, загрузка делегируется загрузчику расширений.
2) Загрузчик расширений попытается поискать в кеше класс Student.
_2.1) Если класс найден, загрузка окончена.
_2.2) Если класс не найден, загрузка делегируется базовому загрузчику.
3) Базовый загрузчик попытается поискать в кеше класс Student.
_3.1) Если класс найден, загрузка окончена.
_3.2) Если класс не найден, базовый загрузчик попытается его загрузить.
__3.2.1) Если загрузка прошла успешно, она закончена ;)
__3.2.2) Иначе управление предается загрузчику раширений.
_3.3) Загрузчик расширений пытается загрузить класс. 
__3.3.1) Если загрузка прошла успешно, она закончена ;)
__3.3.2) Иначе управление предается системному загрузчику.
_3.4) Системный загрузчик пытается загрузить класс. 
__3.4.1) Если загрузка прошла успешно, она закончена ;)
__3.4.2) Иначе генерируется исключение java.lang.ClassNotFoundException.

Как подписать java апплет?

1)В папке с апплетом(/component/applet/) в консоли выполняем команду mvn clean install assembly:assembly
2)Переходим в папку BIN нашего JDK (например, C:\Program Files\Java\jdk1.6.0_23\bin)
3)Создаем локальное хранилище нашего сертификата (keystore):
keytool -genkey -keystore .keystore -alias "Espesoft" -validity 99999
где Espesoft - название alias нашего сертификата;
99999 - срок в месяцах валидности сертификата;
.keystore - имя файла создаваемого хранилища.
keytool -genkey -keystore .keystore -alias "Espesoft" -validity 99999
4)В случае успешного запуска команды, система спросит нас пароль нашего хранилища, а также некоторую информацию о сертификате
(твои ФИО, название компании, город, страну и группу крови)
В результате будем иметь файл .keystore. Это и есть наше хранилище, которым мы будем подписывать разные апплеты.
Копируем в папку BIN нашего JDK наш JAR-файл (/component/applet/target/ecologysigningapplet-jar-with-dependencies.jar)/
Подписываем его с помощью следующей команды:
jarsigner.exe -keystore .keystore ecologysigningapplet-jar-with-dependencies.jar "Espesoft"
где Espesoft - название alias нашего сертификата;
.keystore - имя файла хранилища;
ecologysigningapplet-jar-with-dependencies.jar - название JAR-файла.
Система спросит нас пароль - вводим тот, что ввели в п. 3.
5)Затем перемещаем ecologysigningapplet-jar-with-dependencies.jar в папку webapp модулей ecologyapp и authmodule.
Переименовываем его ecologysigningapplet.jar
ecologyapp (используется для загрузок) и authmodule (используется для сброса пароля с помощью ЭЦП).

пятница, 22 ноября 2013 г.

Переход с tomcat6 на tomcat7.

В проекте при переходе с tomcat6 на tomcat7 столкнулся с проблемой запуска сервера, как оказалось в семерке в server.xml больше не используется listener:
<Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"/>
Закомментировал и сервер вновь стал запускаться, как раньше.

Кстати, почему перешел на 7ой tomcat.
После долгого перерыва в работе в проекте много что поменяли мои коллеги разработчики, в результате после апдейта проекта при старте сервера в логах писалость, что сервер started, а вот в progress bare server starting, различными чистками проблему решить не удалось, поэтому решил поступить по старинке.
Скачал самую последнюю версию eclipse jee и соответственно томката, поставил, проблема решилась.

пятница, 15 ноября 2013 г.

Добавление общей папки в VirtualBox

Запускаем VirtualBox, выбираем нашу тачку, вызываем контекстное меню и выбираем свойства, далее в самой нижней вкладке есть поле "общие папки", кликаем, выбираем кликая справа по кнопке свою папку, доступ к которой мы хотим предоставить нашей машине в VirtualBox.
Сохраняем изменения, запускаем машину.
Сверху включенной машины есть панель управления, выбираем на ней устройства->установить дополнения гостевой ОС, далее далее. Перезапускаем.
Запускаем командную строку, посредством пуск-> выполнить-> cmd, в ней вводим
net use x: \\vboxsvr\имя нашей общей папки, которую выбрали изначально(обязательно пробел после x: ).
Все готово, заходим на сетевой диск vboxsvr.

четверг, 14 ноября 2013 г.

Проблемы совместимости архитектуры приложения и драйвера ODBC.

При попытки подключения к odbc у меня возникла проблема совместимости архитектуры драйвера и приложения.
Фишка оказалась в разрядности. Разрядность odbc драйвера должна совпадать с разрядностью того приложения, которое хочет воспользоваться данным драйвером.
Если у вас 64 битная ОС, а приложение 32, тогда после установки драйвера под 32 битную ось вы не увидите его в списках при создании нового системного источника данных odbc. Что бы увидеть его нужно запустить 32ух разрядную версию приложения "Источники данных (ODBC)". Сделать это можно по адресу C:\Windows\SysWOW64\odbcad32.exe.

среда, 9 октября 2013 г.