Я хотел бы подтвердить правильность следующего анализа:
Я создаю веб-приложение в RoR. У меня есть структура данных для моей базы данных postgres (около 70 таблиц; эта конструкция может нуждаться в изменениях и дополнениях во время разработки, чтобы отразить способы работы Rails. Например, я разработал несколько таблиц пользователей и ролей - но если есть смысл использовать Restful Аутентификация, я буду чистить их и заменять на все, что требуется RA.).
У меня есть шеллскрипт, который вызывает серию файлов .sql для заполнения пустой базы данных таблицами и исходными данными (например, города предварительно заполнены почтовыми городами), а также тестовыми данными (например, компании получают несколько пустышек компании, поэтому у меня есть данные, чтобы играть с).
например:
CREATE TABLE towns (
id integer PRIMARY KEY DEFAULT nextval ('towns_seq'),
county_id integer REFERENCES counties ON DELETE RESTRICT ON UPDATE CASCADE,
country_id integer REFERENCES countries ON DELETE RESTRICT ON UPDATE CASCADE NOT NULL,
name text NOT NULL UNIQUE
);
Предложение 0: данные работают дольше, чем приложения, поэтому я убежден, что я хочу, чтобы ссылочная целостность применялась на уровне БД, а также проверки в моих моделях RoR, несмотря на отсутствие DRYNESS.
Предложение 1. Если я заменю сценарий и файлы sql на Миграции, в настоящее время невозможно сообщить моей базе данных Postgres о внешнем ключе и других ограничениях, которые я в настоящее время устанавливаю в файлах SQL DDL в коде миграции.
Предложение 2: рекламируемое преимущество миграций состоит в том, что изменения в схеме имеют версии вместе с кодом модели RoR. Но если я храню свои скрипты и файлы .sql в railsapp / db, я могу так же легко их версии.
Предложение 3. Учитывая, что в миграциях отсутствует функциональность, которую я хочу, и предоставляются преимущества, которые я могу воспроизвести, у меня нет особых оснований рассматривать их использование. Поэтому я должен --skipmigrations во время сценария / генерации модели.
Мой вопрос: если предложение 0 принято, являются предложения 1,2,3 верными или ложными и почему?
Спасибо!