Hai,
Имаме Rails app (evans), чиито миграции са писани изключително за PostgreSQL. Какво можем да направим, за да фикснем съвместимостта с останалите DBMS-и?
- ОК ли е да редактираме миграции, ако редакциите включват промени само на ниво синтаксис на SQL?
- Тъй като повечето чупещи се миграции имат ефект върху базата данни, само когато в нея има някакви данни, можем ли да ги изпуснем при създаване на базата? (На всичкото отгоре промени по тях са трудни за тестване.)
- Има ли начин да „компресираме“ миграциите само до такива, които докарват базата до текущото ѝ състояние?
И преди някой да е хейтнал, фен съм на Postgres, но не е яко да няма поддръжка за останалите DBMS-и защото:
- Мързи ме да инсталирам и управлявам PostgreSQL сървър на машината си за разработка.
- Не е ОК да не се възползваме от прекрасната абстракция на БД, която предлага Rails.
- Кофти е да се пише нестандартен SQL, бил той и Postgre-complatible.
Иии.. Как да изтестваме подобно начинание, освен с rake db:drop db:create db:migrate spec
, change db, retry?
P.S. Успях да преинача всички миграции до тази, която не ми ражда акъла как може да се напише на ANSI SQL, без да се разбие на няколко View-та.