Как стать автором
Обновить

Комментарии 16

Psych ведь только для 1.9 ветки доступен?
Да, он идет вместе с Ruby 1.9.х
я к тому что в статье неплохо было бы указать
добавил, спасибо
мы используем gem install taps
работает также db:push db:pull
тоже использую тапс. Отлично гоняет sqlite3 mysql, mysql postgres, sqlite3 postgres.
Остальные варианты не проверял
Прикольно. Я примерно то же самое в свом время руками написал на коленке минут за 10, когда надо было базу менять.
Хз, а я регексом подправил… Но там было наоборот с MySQL нужно было к SQLite адаптировать.

Вот только мне интересно что ж это за проект такой где по умолчанию юзался sqlite…
Скажу так, что до определенного момента его было более чем достаточно.
Проблема легко решается использованием всегда mysql или postgres. Неважно какого размера проект.
А из mysql в postgres можно перегнать используя стандартные средства postgres.

Поделитесь за какое время вы переконвертировали базу используя yaml файлы?
Как я понимаю когда приходится переходить уже есть нагрузка и даунтайм приложения критичен даже в ночьное время
100 мегабайтную базу перенесли за 10 минут, но тут многое зависит от железа, конечно.
100 мб это не серьезно.
Можно было обойтись и ActiveRecord::Base.connection.execute(«select * from table»).to_a.to_json
Ну а дальше?..

Нужен был простой и надежный способ, без плясок с бубном.
Насчет «в любую другую» я бы поспорил. При переносе из sqlite в pg с год назад пришлось писать патч для того чтобы нормально переслись блобы. Постарался конечно сделать универсально, чтобы и в других базах работало, но не проверял.

С разными типами тоже будут проблемы, например если в одной базе будут boolean тип а в другой такого типа не будет.
С разными типами у yaml_db проблем нет.
Почитайте внимательнее что я написал. Ваша фраза «с разными типами проблем нет» совсем не описывает то что я имел ввиду.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории