Je voudrais confirmer que l'analyse suivante est correcte:Utilisation des migrations dans Ruby on Rails
Je crée une application Web dans RoR. J'ai une structure de données pour mes postgres db conçues (environ 70 tables, cette conception peut avoir besoin de modifications et d'ajouts pendant le développement pour refléter les façons de faire de Rails.) EG, j'ai conçu des tables d'utilisateurs et de rôles. Authentification, je vais les frotter et les remplacer avec tout ce que RA nécessite.). J'ai un shellscript qui appelle une série de fichiers .sql pour remplir la base de données vide avec des tables et des données initiales (par exemple, les villes sont pré-remplies de villes postales) ainsi que des données de test (par exemple, les entreprises obtient quelques entreprises factices donc j'ai des données à jouer avec).
par exemple:
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
);
Proposition 0: Les données dure plus longtemps que les applications, donc je suis convaincu que je veux l'intégrité référentielle appliquée au niveau de la DB, ainsi que des validations dans mes modèles RoR, malgré l'absence de SÉCHERESSE. Proposition 1: Si je remplace les fichiers script et sql par Migrations, il est actuellement impossible de dire à ma base de données Postgres à propos de la clé étrangère et d'autres contraintes actuellement définies dans les fichiers DDL SQL dans le code de migration.
Proposition 2: L'avantage des migrations est que les modifications du schéma sont versionnées avec le code du modèle RoR. Mais si je garde mes scripts et mes fichiers .sql dans railsapp/db, je peux les éditer aussi facilement.
Proposition 3: Étant donné que les migrations manquent de fonctionnalités et que je peux offrir des avantages que je peux reproduire, il y a peu de raisons pour que je considère leur utilisation. Donc, je devrais --skipmigrations au script/générer le temps du modèle.
Ma question: Si la proposition 0 est acceptée, les propositions 1,2,3 sont-elles vraies ou fausses, et pourquoi?
Merci!
Mise en forme du code: utilisez 4 espaces avant chaque ligne de code. StackOverflow le traitera comme un bloc pré-formaté (y compris l'indentation) et la plupart du temps sélectionnera la syntaxe qui lui convient le mieux. – webmat
Voilà, @webmat. –
choses à considérer lors de l'implémentation de la conception de base de données https://cbabhusal.wordpress.com/2015/08/16/ruby-on-rails-order-of-migration-generator-matters-in-initial-design/ – illusionist