Как уже говорили другие, Rails на самом деле вообще не использует отношения SQL, а имитирует их только в коде. На самом деле он не обеспечивает ссылочную целостность, а создает впечатление, что это так.
Существует небольшая школа мысли, что вы должны не использовать миграцию по этой самой причине, но создавать и защищать свою базу данных с использованием необработанного DDL, поскольку философия Rails ошибочна в том, что она все еще оставляет ваши данные модель широко открыта при обеспечении некоторых мер безопасности (открытый способ, защищенный лазерами, - это то, как я хотел бы выразить это). Очевидно, вы теряете преимущества миграции (я полагаю, вы могли бы сохранить миграции и вручную добавить операторы выполнения). Смотрите книгу Enterprise Rails Дэна Чака; у него есть несколько глав, которые обсуждают это и демонстрируют его идеи.