2009-09-08 4 views
1

Je suis à la recherche à l'aide SubSonic 3 comme mon préféré OU cartographe sur un nouveau projet et une question que je ne peux pas sembler trouver une réponse à ...SubSonic 3 migrations automatiques dans un environnement en direct

Je cherche à utiliser l'approche SimpleRepository, et j'ai remarqué que je peux spécifier un paramètre "SimpleRepositoryOption" qui semble être un indice pour SubSonic quant à savoir s'il doit ou non mettre en cascade les changements de schéma dans la BD.

Ma question est que je devrais activer ceci en développement (SimpleRepositoryOption.RunMigrations) et ensuite le désactiver pour l'environnement en direct (SimpleRepositoryOption.None)? Ou existe-t-il un moyen d'utiliser un paramètre de configuration pour déterminer si ces mises à jour de schéma auront lieu ou non? Je suppose simplement qu'une fois que j'ai un schéma de DB généré (relativement) fixe, je ne veux pas que SubSonic l'interroge pour des changements chaque fois que j'effectue une opération CRUD. À moins que SubSonic ne gère bien sûr cela même sans affecter les performances.

Merci à l'avance :)

Répondre

1

Assurez-vous de le désactiver complètement dans un environnement réel. Il n'y a pas de paramètre de configuration pour le moment.

+0

Un grand merci, Rob. Vraisemblablement, je peux en déduire qu'il y aurait un impact sur les performances si RunMigrations était défini? –

+0

Oui, il y a un hit de performance dans SQL. Si vous exécutez SQL Profiler, vous verrez que lorsque RunMigrations est défini, la fonction interne Migrator() de SubSonic exécute plusieurs requêtes SQL. Dans cet ordre: interroger les colonnes pour le type, exécuter les instructions ALTER pour chaque colonne de ce type (1 requête pour chaque colonne), puis exécuter les données par défaut pour les nouvelles colonnes. Il convient de noter qu'il y a une vérification pour chaque SimpleRepository qui ne le permet qu'une seule fois, par instance. C'est-à-dire, gardez l'approche Singleton. – eduncan911