2009-07-01 9 views
2

Je démarre un projet ASP.NET MVC à l'aide de SubSonic 3 ActiveRecord. J'ai ajouté une table Utilisateurs avec un ID de clé primaire et recompilé les fichiers T4 pour générer la classe User. Je veux m'assurer que, au fur et à mesure du développement, je puisse régénérer/migrer la base de données à tout moment. Il semble que je doive créer des tables et des relations dans la base de données, en régénérant les classes ActiveRecord et en effectuant la migration comme décrit dans http://subsonicproject.com/docs/3.0_Migrations. L'ancien moyen de définition des migrations 2.x ne semble plus disponible.Définition des migrations SubSonic 3 ActiveRecord

Existe-t-il un moyen de piloter le développement à partir du code plutôt que de la base de données, en modifiant les classes de modèle et de faire migrer la base de données en conséquence, sans utiliser SimpleRepository? Je ne veux pas mettre le code généré dans le dépôt de code source, mais si je ne le fais pas, je perds le schéma de la base de données (sauf si je l'exporte et l'enregistre manuellement).

Répondre

4

Vous pouvez toujours utiliser SubSonic 3 comme DAL et laisser SubSonic 2.2 générer les migrations pour vous. Vous avez juste besoin de sonic.exe et de ses dépendances pour exécuter les fichiers de migration.

Pour être plus précis, j'ai le dossier Migrations dans mon projet DataLayer, qui conserve tous les fichiers de migration, mais définit le BuildAction à aucun. J'ai donc la mise en évidence de la syntaxe (mais pas de vérification d'erreur sauf si j'ai remis BuildAction en compilation) mais le code ne gâche pas mon projet.

Vous pouvez les garder dans un projet propre, bien sûr. Mais je l'aime de cette façon pour l'avoir sous contrôle de version et être sûr que mon DAL actuel correspond à ma version de migration. De plus, j'ai nommé mon fichier de configuration migration.config (au lieu de app.config/web.config) et j'utilise cette ligne de commande pour exécuter mes migrations.

Command:   /path/to/sonic.exe 
Arguments:   migrate /config migration.config 
Working Directory: $(SolutionDir)MyProject.Datalayer 

Notez le commutateur/config pour remplacer le fichier de configuration que sonic.exe recherche.

0

Le document lié à ne dit:

« Bottom line: si vous êtes un développeur qui se préoccupe de la conception de base de données, les migrations pourraient ne pas être pour vous »

Je pense que pour le détail de la conception que vous voulez (et je le ferais aussi), les migrations peuvent ne pas convenir?

+0

C'est la chose: je ne suis pas particulièrement préoccupé par la conception de base de données et je veux conduire à partir du code plutôt que d'écrire des migrations à la main, mais je ne vois pas de moyen facile de le faire en utilisant SubSonic Active Record. – glebd

Questions connexes