2009-01-28 9 views
2

C'est un problème auquel je suis confronté à l'occasion et je n'ai pas encore trouvé de réponse satisfaisante. Je cherche un système de construction qui fonctionne bien pour construire une base de données - c'est-à-dire exécuter tous les fichiers SQL dans l'instance de base de données correcte en tant qu'utilisateur correct et dans le bon ordre, et gérer correctement les dépendances.Quel est le meilleur système de construction pour construire une base de données?

J'ai un système que j'ai piraté en utilisant Gnu Make et ça marche, mais ce n'est pas spécialement flexible et franchement ça peut être un peu pénible de travailler dans certaines situations. J'ai envisagé de regarder des choses comme SCons et CMake aussi, mais je ne sais pas à quel point ils sont meilleurs, ou s'il y a un meilleur système qui existe déjà ...

+0

Quelle plate-forme de base de données? MySQL, MSSQL, Postgres, Oracle, autre chose? –

+0

Postgres primairement pour moi, mais c'était plus d'une curiosité générale, c'est pourquoi je l'ai laissé ouvert. – Graham

Répondre

0

Juste un script shell qui exécute toutes les instructions create et importe dans le bon ordre. Vous pouvez également trouver migrations (vient avec des rails) intéressant. Il fournit une infrastructure de type make qui vous permet de maintenir une base de données dont la structure évolue avec le temps.

Supposons que vous ajoutez une nouvelle colonne à une table. Dans les migrations, vous écrivez un extrait de code qui décrit les conditions requises pour l'ajout de la colonne et également pour annuler la modification afin que vous puissiez basculer automatiquement vers différentes versions de votre schéma. Mais je ne suis pas un grand fan de l'intégration étroite avec les rails, mais les principes qui la sous-tendent sont très intéressants.

+0

Je pense qu'il est plus juste de dire que Rails est (un peu) étroitement intégré à ActiveRecord. Pas complètement, d'autres ORM sont possibles, et Rails3/Merb2 ouvrira considérablement l'espace. ActiveRecord peut tout à fait confortablement être utilisé seul. –

+0

Vous avez absolument raison. Je suppose que ce que je voulais dire, c'est que vous ne l'utiliseriez pas pour gérer un schéma de base de données qui n'a pas de dépendances ruby ​​/ active record/rails autrement. J'aimerais voir des migrations "générales" comme des outils. Ce qui ressemble un peu à ce que l'affiche demande. – a2800276

+0

J'ai joué avec eux, et les migrations semblent être une très bonne façon de gérer cela. Peut simplement ignorer le reste des rails qui sont déjà inclus avec lui :) – Graham

0

Pour SQL Server, Je viens d'utiliser un fichier batch avec SQLCMD.EXE et un tas de fichiers .SQL. Ce n'est pas parfait, mais ça semble fonctionner.

0

Pour ma base de données, j'utilise Migrator.NET Il s'agit d'un framework .NET qui vous permet de créer des classes dans lesquelles vous définissez vos instructions DDL. Le framework est livré avec un outil en ligne de commande avec lequel vous pouvez exécuter vos 'migrations' dans le bon ordre. Il possède également une tâche msbuild, ce qui vous permet de l'intégrer dans une version d'intégration continue.

0

Première exportation complète des fichiers DDL décrivant toutes les tables, vues, le code source
(procédures, fonctions, packages), des séquences et des subventions d'un schéma DB

Voir
Is there a tool to generate a full database DDL for SQL Server? What about Postgres and MySQL?

J'ai créé un système de construction de base de données (partie SQL-parser, partie make fichier) pour mettre ces fichiers ensemble dans un script de création de base de données en utilisant python.

Questions connexes