Я успешно использовал Ruby / Rails 'ActiveRecord Миграции в Oracle, SQL Server 2005, MySQL и SQLite. Я думаю, что мне, возможно, удалось использовать его и в Access, но это может быть неисправная память. Он также поддерживает PostgreSQL и db2, о которых я знаю, либо «из коробки», либо путем дополнительной загрузки. И вы всегда можете написать свой собственный адаптер, если вы хотите что-то более экзотическое и хотите действительно саморекламирующийся проект DIY ...
Это работает очень хорошо, но вы должны признать, что это концепция, которая ограничит ваш доступ к функциям, специфичным для платформы. Не только с AR, но и - по всей вероятности - с любым кроссплатформенным инструментом, который не стоит миллиардов долларов: например, что вы будете делать, если ваша целевая платформа не поддерживает триггеры? Или хранимые процедуры? (MySQL 4.0, например, или SQLite). Любая кроссплатформенная система должна иметь дело с такими проблемами (например, я приобрел ненависть к Crystal Reports на всю жизнь после борьбы с версией, которая пыталась - катастрофически - применить оператор внешнего соединения Oracle в запросе SQL Server).
Если вы будете придерживаться таблиц, индексов и более простых ограничений, я ожидаю, что вам будет доступно большое разнообразие платформ. Есть аргумент в пользу предположения, что вам, возможно, следует искать что-то еще, кроме вашей БД. Я не пойду дальше этого - это несколько религиозные дебаты ...