[Linuxtrent] Re: Tool per l'introspezione della struttura di un database SQL

  • From: Daniele Nicolodi <daniele@xxxxxxxxxx>
  • To: linuxtrent@xxxxxxxxxxxxx
  • Date: Wed, 24 Aug 2011 12:37:41 +0200

On 24/08/11 12:13, Antonio Galea wrote:
> 2011/8/24 Daniele Nicolodi <daniele@xxxxxxxxxx>:
>>
>> Sto cercando di scrivere dei test per la procedura di upgrade della
>> struttura (schema) di un datanase (nello specifico MySQL, non dite nulla
>> non ho scelto io). Prima di mettermi a scrivere un tool adhoc per
>> comparare la struttura del db dopo ogni step di migrazione con quella
>> attesa, volevo controllare che qualcosa di generico non esistesse già.
>> Se questo qualcosa di esistente fosse in Python, sarebbe molto molto
>> gradito.
> 
> In Python conosco South - è specifico per Django, però.

South l'avevo visto, ma non è il tool che cerco. South prende delle
descrizioni ORM della struttura di un database e genera l'SQL per
passare da una all'altra. Ma non genera una rappresentazione della
struttura attuale del database, che in sostanza è quello che vorrei
generare io.

> Questo tool di MySQL fa differenze tra schemi e db live:
> 
>    http://www.mysql.com/products/workbench/features.html

Non ho approfondito, ma mi sembra un po' troppo "clickettoso" per le mie
esigenze. Vorrei più una libreria che un'applicazione.

> Cerca "schema evolution" e vedrai che trovi parecchio altro.

Se non vado errato, i tool di "schema evolution" prendono due
descrizioni della struttura di un database e generano l'SQL per
l'evoluzione dello schema dalla una versione all'altra.  Questo non è
quello che mi serve: per l'applicazione in oggetto non è difficile
gestire l'evoluzione a mano, ed è già fatto. Qullo che mi interessa è
più che altro "schema introspection": ti do un database, tu mi
restituisci una rappresentazione del suo schema. Io poi genero la
rappresentazione dello schema dopo la mia procedura di "evoluzione" e la
confronto con quella attesa.

Continuo la ricerca...

Ciao
-- 
Daniele
-- 
Per iscriversi  (o disiscriversi), basta spedire un  messaggio con OGGETTO
"subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxx


Other related posts: