Size: a a a

2020 July 06

RG

Rinchin G in pro.jvm
Cargeh
ну как бы по моему там все понятно написано, нет? В чем вопрос?
В flyway еще нет поддержки clickhouse https://github.com/flyway/flyway/pulls?q=clickhouse (эти реквесты еще не замержены)
Пытаюсь сейчас через liquibase
источник

C

Cargeh in pro.jvm
и при этом они все равно запускаются, и в логи ликвибейз ничего не пишет?
источник

VG

Vladislav Gerasimov in pro.jvm
orderexecuted проставлена колонка, в exectype EXECUTED, deployment_id проставлен
булевых нету полей
источник

D

Dmitriy Rogozhnikov in pro.jvm
Vladislav Gerasimov
orderexecuted проставлена колонка, в exectype EXECUTED, deployment_id проставлен
булевых нету полей
Повторное выполнение вызывает ошибки? Тогда в databasechangelog появится запись о неуспешном применении скрипта. Проверьте там путь, он влияет на хеш. Если пути у первого запуска и второго разные, то это может быть причиной такого поведения.
источник

VG

Vladislav Gerasimov in pro.jvm
INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
INFO liquibase.executor.jvm.JdbcExecutor - Executing with the 'jdbc' executor
INFO liquibase.executor.jvm.JdbcExecutor - SELECT COUNT(*) FROM public.databasechangeloglock
INFO liquibase.executor.jvm.JdbcExecutor - Executing with the 'jdbc' executor
INFO liquibase.executor.jvm.JdbcExecutor - SELECT COUNT(*) FROM public.databasechangeloglock
INFO liquibase.executor.jvm.JdbcExecutor - Executing with the 'jdbc' executor
INFO liquibase.executor.jvm.JdbcExecutor - SELECT LOCKED FROM public.databasechangeloglock WHERE ID=1
INFO liquibase.executor.jvm.JdbcExecutor - Executing with the 'jdbc' executor
INFO l.lockservice.StandardLockService - Successfully acquired change log lock
INFO liquibase.executor.jvm.JdbcExecutor - Executing with the 'jdbc' executor
INFO liquibase.executor.jvm.JdbcExecutor - SELECT MD5SUM FROM public.databasechangelog WHERE MD5SUM IS NOT NULL LIMIT 1
INFO liquibase.executor.jvm.JdbcExecutor - Executing with the 'jdbc' executor
INFO liquibase.executor.jvm.JdbcExecutor - SELECT COUNT(*) FROM public.databasechangelog
INFO l.c.StandardChangeLogHistoryService - Reading from public.databasechangelog
INFO liquibase.executor.jvm.JdbcExecutor - Executing with the 'jdbc' executor
INFO liquibase.executor.jvm.JdbcExecutor - SELECT * FROM public.databasechangelog ORDER BY DATEEXECUTED ASC, ORDEREXECUTED ASC
INFO liquibase.executor.jvm.JdbcExecutor - Executing with the 'jdbc' executor
INFO liquibase.executor.jvm.JdbcExecutor - CREATE TABLE public.cities (id BIGINT GENERATED BY DEFAULT AS IDENTITY NOT NULL, created_date TIMESTAMP WITHOUT TIME ZONE, deleted BOOLEAN NOT NULL, lat numeric(12, 8), lon numeric(12, 8), region VARCHAR(255), title VARCHAR(255), CONSTRAINT cities_pkey PRIMARY KEY (id))
ERROR liquibase.changelog.ChangeSet - Change Set classpath:/db/changelog/001/001_initial-changelog.xml::2020-07-06-cities-table-001::vladi_geras failed.  Error: ERROR: relation "cities" already exists [Failed SQL: (0) CREATE TABLE public.cities (id BIGINT GENERATED BY DEFAULT AS IDENTITY NOT NULL ..................))]
INFO liquibase.executor.jvm.JdbcExecutor - Executing with the 'jdbc' executor
INFO l.lockservice.StandardLockService - Successfully released change log lock
2020.07.06 13:48:41 [restartedMain]  WARN o.s.b.w.s.c.AnnotationConfigServletWebServerApplicationContext - Exception encountered during context initialization - cancelling refresh
источник

VG

Vladislav Gerasimov in pro.jvm
вот этот вариант попробую, и пути тоже проверю еще раз, спасибо
источник

VG

Vladislav Gerasimov in pro.jvm
Dmitriy Rogozhnikov
Повторное выполнение вызывает ошибки? Тогда в databasechangelog появится запись о неуспешном применении скрипта. Проверьте там путь, он влияет на хеш. Если пути у первого запуска и второго разные, то это может быть причиной такого поведения.
выполяю повторно maven liquibase:changeLogSync, синхронизируется успешно
при старте приложения повторно также ошибка, неуспешных применений не фиксирует в таблице databasechangelog
источник

RG

Rinchin G in pro.jvm
Cargeh
так в самом databasechangelog указано, что они применены, или нет? булеан стоит?
liquibase тоже ругается
ClickHouse exception, code: 62, host: localhost, port: 8123; Code: 62, e.displayText() = DB::Exception: Syntax error: failed at position 44: NOT NULL, LOCKED BOOLEAN NOT NULL, LOCKGRANTED datetime, LOCKEDBY VARCHAR(255), CONSTRAINT PK_DATABASECHANGELOGLOCK PRIMARY KEY (ID)). Expected one of: CODEC, ALIAS, TTL, ClosingRoundBracket, Comma, DEFAULT, MATERIALIZED, COMMENT, token (version 20.4.6.53 (official build))
источник

RG

Rinchin G in pro.jvm
пытаюсь создавать что то вроде такого:
<changeSet author="admin" id="1">
 <createTable tableName="metrics">
   <column name="event_id" type="UUID"/>
   <column name="instance_id" type="UInt64"/>
   <column name="username" type="String"/>
   <column name="useragent" type="String"/>
   <column name="width" type="UInt64"/>
   <column name="height" type="UInt64"/>
   <column name="screen_width" type="UInt64"/>
   <column name="screen_height" type="UInt64"/>
   <column name="event_type" type="String"/>
   <column name="time_stamp" type="UInt64"/>
   <column name="current_mode" type="String"/>
   <column name="jserror_message" type="String"/>
   <column name="jserror_stack" type="String"/>
   <column name="playererror_cameraid" type="UInt64"/>
   <column name="playererror_url" type="String"/>
   <column name="playererror_eventtype" type="String"/>
   <column name="playererror_source" type="String"/>
   <column name="playererror_streamid" type="String"/>
   <column name="playererror_fragment" type="String"/>
   <column name="useraction_actiontype" type="String"/>
   <column name="useraction_cssselector" type="String"/>
   <column name="useraction_elementname" type="String"/>
   <column name="useraction_x" type="UInt64"/>
   <column name="useraction_y" type="UInt64"/>
 </createTable>
 <rollback>
   <dropTable tableName="metrics"/>
 </rollback>
</changeSet>
источник

C

Cargeh in pro.jvm
Rinchin G
liquibase тоже ругается
ClickHouse exception, code: 62, host: localhost, port: 8123; Code: 62, e.displayText() = DB::Exception: Syntax error: failed at position 44: NOT NULL, LOCKED BOOLEAN NOT NULL, LOCKGRANTED datetime, LOCKEDBY VARCHAR(255), CONSTRAINT PK_DATABASECHANGELOGLOCK PRIMARY KEY (ID)). Expected one of: CODEC, ALIAS, TTL, ClosingRoundBracket, Comma, DEFAULT, MATERIALIZED, COMMENT, token (version 20.4.6.53 (official build))
поддержки диалекта кликхауса нет ни у ликвибейза, ни у флайвея
источник

RG

Rinchin G in pro.jvm
а чем вообще мигрировать? просто отдавать sql?
источник

C

Cargeh in pro.jvm
Rinchin G
а чем вообще мигрировать? просто отдавать sql?
кто как. можно через спринговый DatabasePopulator, например
источник

C

Cargeh in pro.jvm
Vladislav Gerasimov
выполяю повторно maven liquibase:changeLogSync, синхронизируется успешно
при старте приложения повторно также ошибка, неуспешных применений не фиксирует в таблице databasechangelog
тупой вопрос, но базы точно одни и те же? К которой мавен таска подключается и к которой приложение ходит
источник

RG

Rinchin G in pro.jvm
Cargeh
кто как. можно через спринговый DatabasePopulator, например
А без jpa? как нить можно?
источник

VG

Vladislav Gerasimov in pro.jvm
Cargeh
тупой вопрос, но базы точно одни и те же? К которой мавен таска подключается и к которой приложение ходит
да, одни и те же
источник

C

Cargeh in pro.jvm
Rinchin G
А без jpa? как нить можно?
DatabasePopulator это не JPA
источник

C

Cargeh in pro.jvm
Vladislav Gerasimov
да, одни и те же
тогда хз, где то какая то невнимательность, имхо
источник

VG

Vladislav Gerasimov in pro.jvm
я согласен
удалил БД. Миграции сгенерированные остались в xml файле.
Делаю changeLogSync. Появляются только 2 таблицы databasechangelog и databasechangeloglock
В databasechangelog поля с миграциями, которые EXECUTED, появились.
При старте приложения все равно применяет миграции (только теперь успешно, так как изначально пустая была бд)
Я подозреваю, что где-то hash считается не так
источник

RG

Rinchin G in pro.jvm
Cargeh
DatabasePopulator это не JPA
А затем можно будет как нибудь вносить правки в таблицу? Добавить новые поля? не снеся данные? ()
источник

D

Dmitriy Rogozhnikov in pro.jvm
Vladislav Gerasimov
я согласен
удалил БД. Миграции сгенерированные остались в xml файле.
Делаю changeLogSync. Появляются только 2 таблицы databasechangelog и databasechangeloglock
В databasechangelog поля с миграциями, которые EXECUTED, появились.
При старте приложения все равно применяет миграции (только теперь успешно, так как изначально пустая была бд)
Я подозреваю, что где-то hash считается не так
А новые записи в databasechangelog появились?
источник