J'utilise des rails avec l'adaptateur oracleenhanced
pour créer une nouvelle interface pour une application héritée.Rails: rake db: migrate * très * lent sur Oracle
Les migrations de base de données fonctionnent avec succès, mais prennent un temps incroyablement long avant la fin du rake. Les modifications de la base de données se produisent assez rapidement (1 ou 2 secondes), mais la vidage db/schema.db
prend plus d'une heure pour terminer. (Voir l'exemple de migration ci-dessous.)
C'est un schéma relativement grand (environ 150 tables), mais je suis sûr que cela ne devrait pas prendre autant de temps pour vider chaque description de table.
Y a-t-il un moyen de l'accélérer en prenant simplement le dernier schema.db
et en lui appliquant la modification spécifiée dans la migration? Ou suis-je capable d'ignorer complètement ce vidage de schéma? Je comprends que schema.db
est utilisé pour créer la base de données de test à chaque fois, mais dans ce cas, il y a une grande partie de la logique de base de données dans les déclencheurs de table qui ne sont pas inclus dans le schema.rb
pas bon pour nous en tout cas. (C'est une question tout à fait différent que je dois régler à un autre point.)
[email protected]:~/rails/voyager$ time rake db:migrate (in /home/dgs/rails/voyager) == 20090227012452 AddModuleActionAndControllerNames: migrating ================ -- add_column(:modules, :action_name, :text) -> 0.9619s -> 0 rows -- add_column(:modules, :controller_name, :text) -> 0.1680s -> 0 rows == 20090227012452 AddModuleActionAndControllerNames: migrated (1.1304s) ======= real 87m12.961s user 0m12.949s sys 0m2.128s
Cool. Je vais jouer dans oracle_enhanced_adapter.rb et voir ce que je peux trouver. Je suppose qu'il est lié au schéma car il y a un certain nombre de schémas identiques avec des noms différents dans la base de données. Salutations –
Vous pouvez également essayer la nouvelle version de l'adaptateur oracle_enhanced version 1.2.0 - il existe des améliorations pour les performances de vidage de schéma. –