Robert Klemme wrote: > On 28.07.2010 03:57, Fabian Marin wrote: >> must (eventually) match the schema proscribed by the DDL. >> I've done my share of research, looking for a similar tool to avoid >> reinventing the wheel. However, I could not reach the author of >> db_discovery (http://rubyforge.org/projects/db-discovery/), and >> otherwise I found no other author. It seems like db_discovery did not >> find a niche even though it seems to be a very good tool. >> >> Does anyone know if such a tool already exists and is actively >> supported??? As a newbie Rubyist I'm trying to exploit the power of this >> community by querying you guys to make sure such a tool would actually >> be novel. > > It wouldn't. This is a solved problem already, for example Sybase has > an excellent product which has sophisticated schema comparison > functionality with a good graphical UI: > http://www.sybase.com/products/modelingdevelopment/powerdesigner > Is Sybase open source? I'm disregarding proprietary, non open source solutions. >> As for its implementation I have a couple of ideas (e.g. parse DDL as an >> external DSL using a multiple dispatch library, use ActiveRecord to >> reflect on a database's schema). However, I want to make sure that such >> a tool would actually benefit the community. > > I would create these tools: > > 1. schema extractor into a standard format which you define (could be an > XML representation or just marshalled object model). > > 2. diff for the standard format schema (two way, maybe also three way) > > 3. maybe also a converter from a given DDL to the standard format so you > do not have to go through the DB although this might be fragile since > the actual DB's settings may influence how the schema eventually looks. > > Kind regards > > robert How about this option? Use RoR Active Record to create a model from a DDL file, and also a comparable model from a DB, then generate a module that can compare equivalent Entity/Table classes from both? -- Posted via http://www.ruby-forum.com/.