Чтобы добавлять сообщения и комментарии, .

@Sectoid:
Sectoid

чят, а какие тулзы есть для Монго для миграции "схемы" данных между релизами? Что-то вроде Liquibase, только для MongoDB. Беглое гугление дало github.com но он похоже Java-only и не умеет даже быть запущеным из концольки. Может еще что-то есть?\

@norguhtar:
norguhtar

Сижу взрываю себе голову как сделать нормальное создание БД и миграцию. Пока liquibase больше всего похож на правду.

@Sectoid:
Sectoid

жуец, а есть тут эксперты по liquibase? Как этой штукенцией порезать таблицу на несколько более мелких?

Ситуация следующая: есть здоровая (4кк записей) табличка с данными. Хочется ее порезать по некоторому полю (например Date). Нет, я хочу не partitions, а именно сделать несколько таблиц с суффиксом. Понятно, что можно посмотреть таблицу, и вручную нахерачить SQL'ки для всех диапазонов. Но этот вариант плох тем, что если применять этот ченжсет позже его написания, данных в таблице будет на больше "сегментов", чем предусмотрено.

Вопрос в следующем: есть ли готовые средства (гугл молчит, собака) под liquibase для осуществления подобной операции или костылить свой custom-скриптик?

Рек, как обычно, приветствуется :)

@Darion:
Darion

Далее по поводу ошибок валидации контрольных сумм на другом сервере.
Сравнил я два файла диффом — свой и с сервера. Идентичны.
Посмотрел версии джавы. На сервере GNU libgcj (если так верно ее называть), у меня — OpenJDK. Разные реализации джавы неверно каким-то образом по разному считают контрольные суммы? о.О
Возможно, это как-то связано с реализацией liquibase.
OpenJDK и виндовая джава тут работают одинаково.
Нужно пробовать ставить OpenJDK, пожалуй.

@Darion:
Darion

На своей машине сливаю образ базы данных — все запускается, делаю тоже самое на одном из серверов — ошибки проверки контрольной суммы сыплются на ченжлоги. У меня стоит версия svn 1.6.9, на сервере — 1.5.1 (ну так Дебиан). Теперь нужно выяснять, как это так разные версии svn-клиента загружают файлы (или фрагменты файлов) с разными контрольными суммами. Это что значит, svn в очередной раз обновится и тогда у меня тоже ошибки полезут о.О
Есть вариант, что конфигурация разная у клиентов. Где-то трансляция переводов строки, например, происходит из одного типа в другой.
Ну ладно, я то как-нибудь с этим разберусь. А человек, которому нужно просто пунктик меню выбрать в тортойзе и запустить батничек — глаза выпучит на 222 ошибки проверки контрольной суммы.

@Darion:
Darion

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

@Darion:
Darion

Нашел решение одной из последних проблем в патче недельной давности на трекере liquibase. Патчить пришлось вручную. Не сразу разобрался с сборкой — в файле BUILDING.txt написано, что собирать нужно Ant'ом. На самом деле — Maven'ом. Плюс потратил время из-за собственной неаккуратности при ручном патче.

@Darion:
Darion

В liquibase не хватает тега, подобного includeAll, только по отношению к загрузке данных из csv-файлов. С загрузкой статики не должно быть ничего слишком неудобного (её обычно немного), но для тестовых данных для каждого файла писать отдельный тег в ченжлоге — замучишься.

@Darion:
Darion

Думал, что нужно будет дописывать для liquibase модуль для контроля версий хранимых процедур и представлений. Если действовать по аналогии с простыми change-скриптами, процедуру следовало бы каждый раз заливать в запросе заново. Это очень неудобно в плане удобства использования с системой контроля версий — нельзя в автоматическом режиме проследить изменения. Предполагался другой способ — хранить текст таких сущностей в отдельных от change-скриптов файлах, менять их при необходимости, и при разворачивании перезаписывать все процедуры и представления. Для этого и нужен был модуль. Но, оказалось, что в liquibase есть такой параметр внутри change sets, как runOnChange, который выполняет ченджсет при его изменении. И этого достаточно для хранимых процедур.
Но в всю технологию работы, в особенности с ветвлением и слиянием, я еще не полностью осознал.

@Darion:
Darion

Проблему с подключением к БД MSSQL через liquibase (#599775) решил использованием jtds вместо майкрософтовского драйвера (кстати, пишут, что jstds работает в 2.5 раза быстрее последнего). Ченджлог сгенерировался довольно быстро, это наводит на подозрения, что там есть не все что нужно (хранимые процедуры и проч.). Теперь вылезла ошибка при migrate с этого ченджлога, с ней сейчас буду разбираться.

@Darion:
Darion

Жуйк, я не знаю Java, но мне нужно опробовать liquibase. В экспериментах с mysql все прошло нормально, но когда понадобилось сгенерировать ченджлог для удаленной базы на MSSQL Server — возникли проблемы. Вот что выходит:

alex@alex-laptop:~/tmp/liquibase$ ~/bin/liquibase/liquibase --driver=com.microsoft.jdbc.sqlserver.SQLServerDriver --classpath="/home/alex/tmp/sqljdbc_2.0/enu/sqljdbc.jar" --changeLogFile=tdb.changelog.xml --url="jdbc:sqlserver://192.168.1.3/tdb" --username=usr --password=pass generateChangeLog

Migration Failed: Cannot find database driver: com.microsoft.jdbc.sqlserver.SQLServerDriver

Вот paste.org ссылка на текст в нормальном виде. То что расположено выше, жуйк, как обычно, изуродует (и какой он после этого "гиковский" ресурс?).

Полез в архив sqljdbc.jar — путь к классу верный. Решил что класс находит, но каким-то образом не распознает в нем database driver — нет, при указании несуществующего пути к классу — ошибка та же.
Что можно еще сделать, чтобы решить этот вопрос?