Je contrôle la version la plupart de mon travail avec Git : code, documentation, configuration système. Je peux le faire parce que tout mon précieux travail est stocké sous forme de fichiers texte.
J'ai également écrit et traité de nombreux schémas SQL pour notre base de données Postgres. Le schéma comprend des vues, des fonctions SQL et nous écrirons des fonctions Postgres en langage de programmation R (via PL / R ).
J'essayais de copier et de dépasser le schéma de morceaux que moi et mes collaborateurs écrivons, mais j'oublie de le faire. La copie et l'action passée sont répétitives et sujettes aux erreurs.
La méthode pg_dump / pg_restore ne fonctionnera pas car elle perd les commentaires.
Idéalement, j'aimerais avoir un moyen d'extraire mon schéma actuel dans un ou plusieurs fichiers et conserver les commentaires afin de pouvoir faire le contrôle de version.
Quelle est la meilleure pratique pour le schéma de contrôle de version avec des commentaires?
la source
COMMENT ON
disponible dans un environnement non postgres? Je ne pense pas que ce soit du SQL standard. ce qui signifie que cela pourrait être spécifique au postgresRéponses:
Pourquoi ne pas
COMMENT ON
les différentsSCHEMA
composants, de cette façon vos commentaires sont dans le schéma et seront vidés.la source
Les schémas de contrôle de version ont toujours été problématiques pour moi. Je contrôle généralement les versions du schéma généré par l'outil de modélisation de données que j'utilise. Le modèle est également contrôlé en version. J'utilise des différences entre le schéma actuel et le schéma précédent pour créer le correctif requis pour mettre à jour le schéma. Certains outils de modélisation créent des scripts de mise à jour de schéma utilisables. Les scripts de mise à jour sont également contrôlés par version.
Je vois parfois des scripts qui sont destinés à vider le schéma dans un format approprié pour régénérer le schéma. L'un d'eux peut être ce que vous recherchez. Certains des outils de modélisation et de requête sont capables de créer des scripts de régénération de schéma à partir d'un schéma existant. Si vous pouvez l'écrire, cela peut vous donner un fichier adapté au contrôle de version.
la source
Une alternative (ou vous pouvez les combiner) à ma proposition précédente est d'écrire votre code SQL dans votre éditeur (IDE) et d'enregistrer les fichiers, et de les valider dans votre VCS, après cela, exécutez le code sur la base de données en utilisant
psql -1f
. De cette façon, le code est contrôlé par la version avant d'être exécuté.la source
Je travaille dans un projet similaire. Voici ma proposition de conception:
Si vous n'utilisez pas de référentiel, créez un tableau simple au format texte CSV comme le tableau ci-dessous:
version | file name | date | description | 1.0 | yyyymmdd-v10.dump | yyyymmdd | new version of user table | 1.1 | backupDB-v11.dump | yyyymmdd | normalized reports tables |
en conservant une relation dans le fichier CSV des vidages générés par nom de fichier, vous pouvez les suivre facilement et vous vous assurez que la restauration fonctionnera car vous avez tout vidé.
De nos jours, tout stockage cloud ou stockage sur site ne devrait pas être aussi cher, même s'il s'agit de To de données. il y en a qui font rage de 700 à 1000 USD avec jusqu'à 16 To .
Vous pouvez même économiser beaucoup plus si vous passez à un cloud de stockage comme le type le plus populaire AWS S3
Si une bonne conception et des normes d'organisation sont définies pour garder une trace de toute l'infrastructure et des actifs informatiques, cela ne devrait pas être douloureux une fois mis en œuvre, cela peut être relativement simple et vous évitera des problèmes de configuration et, surtout, du temps ...
la source