Loading ...
Sorry, an error occurred while loading the content.

What would you want in a database change/refactoring tracking tool?

Expand Messages
  • Nathan Voxland
    I am one of the developers of LiquiBase (http://www.liquibase.org), an LGPL Java library for creating, applying, and managing database changes. I was hoping to
    Message 1 of 5 , Oct 2, 2007
    • 0 Attachment
      I am one of the developers of LiquiBase (http://www.liquibase.org), an
      LGPL Java library for creating, applying, and managing database changes.


      I was hoping to get some feedback from outside our mailing list on what
      new features would be most helpful to add--especially for people dealing
      with databases in an agile process. I feel that the project is getting
      to the point that it addresses most of the needs that I can think of.
      However, I know there are uses and constraints that we have not thought
      of and want to make sure we address them. That is why I'm asking: What
      would help you the most in a database change (refactoring) tracking
      tool? Is there particular functionality that would make your life much
      easier? Are there a requirements that you would need satisfied? Is
      there something keeping you from adopting a database change tracking
      tool?

      In case you haven't kept up on recent releases, our current major
      functionality includes:
      - 34 Refactorings
      - Extensibility to create custom refactorings
      - update database to current version
      - rollback last X changes to database
      - rollback database changes to particular date/time
      - rollback database to "tag"
      - Stand-alone IDE and Eclipse plug-in
      - "Contexts" for including/excluding change sets to execute
      - Database diff report
      - Database diff changelog generation
      - Ability to create changelog to generate an existing database
      - Database change documentation generation
      - Ability to save SQL to be applied for approval by a DBA
      - DBMS Check, user check, and SQL check preconditions
      - Can split change log into multiple files for easier management
      - Can be run via command line, Ant, Maven, Servlet container, or Spring
      - Support for 10 database systems

      You can also see most of the feature requests on our issue tracker:

      http://sourceforge.net/tracker/?group_id=187970&atid=923446

      Nathan
    • timander37
      Two Things: 1) Port the database structure to another DBMS 2) Extract all data as insert statements Some context: An easy way to port to another DBMS would be
      Message 2 of 5 , Oct 2, 2007
      • 0 Attachment
        Two Things:
        1) Port the database structure to another DBMS
        2) Extract all data as insert statements

        Some context:

        An easy way to port to another DBMS would be useful because we use
        Hypersonic to run our builds in development, but in our continuous
        integration environment, QA, and production we use SQL Server. It is
        extra maintenance to keep be compatible with both SQL Server and
        Hypersonic, but cutting the build time down is worth it. A tool that
        generates the scripts to recreate the database structure any supported
        database would be very useful. We have used PowerDesigner in the
        past, but not many people know how to use it and we had to make our
        own Hypersonic dialect. Currently we run our scripts on both SQL
        Server and in Hypersonic and have a JUnit test that verifies the
        metadata matches. A tool that supports this more naturally would be
        very helpful.

        Extracting all data as insert statements (in the correct order to
        honor referential integrity). Bonus: generate the insert statements
        for the DBMS of choice! This would be helpful because we have a need
        to nuke & pave the database for the build. To do this, we maintain
        scripts for test data and domain data. Our database tests and
        integration tests setup their own transaction data, but we assume the
        domain data and configuration data exists. A way to extract all data
        from one database as insert statements that are ready to run on
        another DBMS would save a lot of time. Other tools do this, but
        generally only one table at a time. Usually you have to drop all of
        the foreign keys and slam the data into all of the tables (doing some
        text manipulation if going to another DBMS), and hope the foreign keys
        can be added back without any problems. A real pain.

        Regards,
        Tim Andersen



        --- In agileDatabases@yahoogroups.com, "Nathan Voxland"
        <nathan.voxland@...> wrote:
        >
        > I am one of the developers of LiquiBase (http://www.liquibase.org), an
        > LGPL Java library for creating, applying, and managing database changes.
        >
        >
        > I was hoping to get some feedback from outside our mailing list on what
        > new features would be most helpful to add--especially for people dealing
        > with databases in an agile process. I feel that the project is getting
        > to the point that it addresses most of the needs that I can think of.
        > However, I know there are uses and constraints that we have not thought
        > of and want to make sure we address them. That is why I'm asking: What
        > would help you the most in a database change (refactoring) tracking
        > tool? Is there particular functionality that would make your life much
        > easier? Are there a requirements that you would need satisfied? Is
        > there something keeping you from adopting a database change tracking
        > tool?
        >
        > In case you haven't kept up on recent releases, our current major
        > functionality includes:
        > - 34 Refactorings
        > - Extensibility to create custom refactorings
        > - update database to current version
        > - rollback last X changes to database
        > - rollback database changes to particular date/time
        > - rollback database to "tag"
        > - Stand-alone IDE and Eclipse plug-in
        > - "Contexts" for including/excluding change sets to execute
        > - Database diff report
        > - Database diff changelog generation
        > - Ability to create changelog to generate an existing database
        > - Database change documentation generation
        > - Ability to save SQL to be applied for approval by a DBA
        > - DBMS Check, user check, and SQL check preconditions
        > - Can split change log into multiple files for easier management
        > - Can be run via command line, Ant, Maven, Servlet container, or Spring
        > - Support for 10 database systems
        >
        > You can also see most of the feature requests on our issue tracker:
        >
        > http://sourceforge.net/tracker/?group_id=187970&atid=923446
        >
        > Nathan
        >
      • Nathan Voxland
        Thanks for the feedback #1 should already be available in LiquiBase since the change logs are DBMS independent. In the odd cases where we can t generate the
        Message 3 of 5 , Oct 3, 2007
        • 0 Attachment
          Thanks for the feedback

          #1 should already be available in LiquiBase since the change logs are
          DBMS independent. In the odd cases where we can't generate the same
          statements for both databases, you can create separate change tags and
          mark one as for hsql and one as for mssql. Take a look, and if you run
          into any problems, make sure you let us know since this is a use I have
          tried to address.

          #2: I have thought about this, but have been concerned about the size of
          the resulting output. I'll add your comments to the related issue in
          our tracker.

          Nathan

          -----Original Message-----
          From: agileDatabases@yahoogroups.com
          [mailto:agileDatabases@yahoogroups.com] On Behalf Of timander37
          Sent: Tuesday, October 02, 2007 9:01 PM
          To: agileDatabases@yahoogroups.com
          Subject: [agileDatabases] Re: What would you want in a database
          change/refactoring tracking tool?

          Two Things:
          1) Port the database structure to another DBMS
          2) Extract all data as insert statements

          Some context:

          An easy way to port to another DBMS would be useful because we use
          Hypersonic to run our builds in development, but in our continuous
          integration environment, QA, and production we use SQL Server. It is
          extra maintenance to keep be compatible with both SQL Server and
          Hypersonic, but cutting the build time down is worth it. A tool that
          generates the scripts to recreate the database structure any supported
          database would be very useful. We have used PowerDesigner in the
          past, but not many people know how to use it and we had to make our
          own Hypersonic dialect. Currently we run our scripts on both SQL
          Server and in Hypersonic and have a JUnit test that verifies the
          metadata matches. A tool that supports this more naturally would be
          very helpful.

          Extracting all data as insert statements (in the correct order to
          honor referential integrity). Bonus: generate the insert statements
          for the DBMS of choice! This would be helpful because we have a need
          to nuke & pave the database for the build. To do this, we maintain
          scripts for test data and domain data. Our database tests and
          integration tests setup their own transaction data, but we assume the
          domain data and configuration data exists. A way to extract all data
          from one database as insert statements that are ready to run on
          another DBMS would save a lot of time. Other tools do this, but
          generally only one table at a time. Usually you have to drop all of
          the foreign keys and slam the data into all of the tables (doing some
          text manipulation if going to another DBMS), and hope the foreign keys
          can be added back without any problems. A real pain.

          Regards,
          Tim Andersen



          --- In agileDatabases@yahoogroups.com, "Nathan Voxland"
          <nathan.voxland@...> wrote:
          >
          > I am one of the developers of LiquiBase (http://www.liquibase.org), an
          > LGPL Java library for creating, applying, and managing database
          changes.
          >
          >
          > I was hoping to get some feedback from outside our mailing list on
          what
          > new features would be most helpful to add--especially for people
          dealing
          > with databases in an agile process. I feel that the project is
          getting
          > to the point that it addresses most of the needs that I can think of.
          > However, I know there are uses and constraints that we have not
          thought
          > of and want to make sure we address them. That is why I'm asking:
          What
          > would help you the most in a database change (refactoring) tracking
          > tool? Is there particular functionality that would make your life
          much
          > easier? Are there a requirements that you would need satisfied? Is
          > there something keeping you from adopting a database change tracking
          > tool?
          >
          > In case you haven't kept up on recent releases, our current major
          > functionality includes:
          > - 34 Refactorings
          > - Extensibility to create custom refactorings
          > - update database to current version
          > - rollback last X changes to database
          > - rollback database changes to particular date/time
          > - rollback database to "tag"
          > - Stand-alone IDE and Eclipse plug-in
          > - "Contexts" for including/excluding change sets to execute
          > - Database diff report
          > - Database diff changelog generation
          > - Ability to create changelog to generate an existing database
          > - Database change documentation generation
          > - Ability to save SQL to be applied for approval by a DBA
          > - DBMS Check, user check, and SQL check preconditions
          > - Can split change log into multiple files for easier management
          > - Can be run via command line, Ant, Maven, Servlet container, or
          Spring
          > - Support for 10 database systems
          >
          > You can also see most of the feature requests on our issue tracker:
          >
          > http://sourceforge.net/tracker/?group_id=187970&atid=923446
          >
          > Nathan
          >





          Yahoo! Groups Links
        • Josue Barbosa dos Santos
          ... I am starting with hibernate now, but one of the compiling reasons to use it is this kind of functionality. To run fast in a local machine we could use a
          Message 4 of 5 , Oct 4, 2007
          • 0 Attachment
            >On 10/2/07, timander37 <timander@...> wrote:
            >> 1) Port the database structure to another DBMS

            I am starting with hibernate now, but one of the compiling reasons to use it
            is this kind of functionality. To run fast in a local machine we could use a
            in memory db, or use o local installation of Oracle. In continuous
            integration environment we use the most close to the production
            environment.

            With hibernate you can generate the correspondent schema to the target db,
            as the schema is implicit defined in the xmls that do the mapping between
            objects and the data base. For example, to drop and recreate the database
            schema, you could change the target db and execute the commands:
            ...
            factoryBean.dropDatabaseSchema();
            factoryBean.createDatabaseSchema();
            ...

            Just my 2 cents.

            Abraços,

            Josué.

            PS - sorry my poor English


            On 10/2/07, timander37 <timander@...> wrote:
            >
            > Two Things:
            > 1) Port the database structure to another DBMS
            > 2) Extract all data as insert statements
            >
            > Some context:
            >
            > An easy way to port to another DBMS would be useful because we use
            > Hypersonic to run our builds in development, but in our continuous
            > integration environment, QA, and production we use SQL Server. It is
            > extra maintenance to keep be compatible with both SQL Server and
            > Hypersonic, but cutting the build time down is worth it. A tool that
            > generates the scripts to recreate the database structure any supported
            > database would be very useful. We have used PowerDesigner in the
            > past, but not many people know how to use it and we had to make our
            > own Hypersonic dialect. Currently we run our scripts on both SQL
            > Server and in Hypersonic and have a JUnit test that verifies the
            > metadata matches. A tool that supports this more naturally would be
            > very helpful.
            >
            > Extracting all data as insert statements (in the correct order to
            > honor referential integrity). Bonus: generate the insert statements
            > for the DBMS of choice! This would be helpful because we have a need
            > to nuke & pave the database for the build. To do this, we maintain
            > scripts for test data and domain data. Our database tests and
            > integration tests setup their own transaction data, but we assume the
            > domain data and configuration data exists. A way to extract all data
            > from one database as insert statements that are ready to run on
            > another DBMS would save a lot of time. Other tools do this, but
            > generally only one table at a time. Usually you have to drop all of
            > the foreign keys and slam the data into all of the tables (doing some
            > text manipulation if going to another DBMS), and hope the foreign keys
            > can be added back without any problems. A real pain.
            >
            > Regards,
            > Tim Andersen
            >
            > --- In agileDatabases@yahoogroups.com <agileDatabases%40yahoogroups.com>,
            > "Nathan Voxland"
            >
            > <nathan.voxland@...> wrote:
            > >
            > > I am one of the developers of LiquiBase (http://www.liquibase.org), an
            > > LGPL Java library for creating, applying, and managing database changes.
            > >
            > >
            > > I was hoping to get some feedback from outside our mailing list on what
            > > new features would be most helpful to add--especially for people dealing
            > > with databases in an agile process. I feel that the project is getting
            > > to the point that it addresses most of the needs that I can think of.
            > > However, I know there are uses and constraints that we have not thought
            > > of and want to make sure we address them. That is why I'm asking: What
            > > would help you the most in a database change (refactoring) tracking
            > > tool? Is there particular functionality that would make your life much
            > > easier? Are there a requirements that you would need satisfied? Is
            > > there something keeping you from adopting a database change tracking
            > > tool?
            > >
            > > In case you haven't kept up on recent releases, our current major
            > > functionality includes:
            > > - 34 Refactorings
            > > - Extensibility to create custom refactorings
            > > - update database to current version
            > > - rollback last X changes to database
            > > - rollback database changes to particular date/time
            > > - rollback database to "tag"
            > > - Stand-alone IDE and Eclipse plug-in
            > > - "Contexts" for including/excluding change sets to execute
            > > - Database diff report
            > > - Database diff changelog generation
            > > - Ability to create changelog to generate an existing database
            > > - Database change documentation generation
            > > - Ability to save SQL to be applied for approval by a DBA
            > > - DBMS Check, user check, and SQL check preconditions
            > > - Can split change log into multiple files for easier management
            > > - Can be run via command line, Ant, Maven, Servlet container, or Spring
            > > - Support for 10 database systems
            > >
            > > You can also see most of the feature requests on our issue tracker:
            > >
            > > http://sourceforge.net/tracker/?group_id=187970&atid=923446
            > >
            > > Nathan
            > >
            >
            >
            >


            [Non-text portions of this message have been removed]
          • cash foley
            We need the ability to create a new, non-null column. Maybe I should post that to your group, but since you are here... ... -- Cash [Non-text portions of
            Message 5 of 5 , Oct 4, 2007
            • 0 Attachment
              We need the ability to create a new, non-null column. Maybe I should post
              that to your group, but since you are here...

              On 10/4/07, Josue Barbosa dos Santos <josuesantos@...> wrote:
              >
              > >On 10/2/07, timander37 <timander@... <timander%40mchsi.com>>
              > wrote:
              > >> 1) Port the database structure to another DBMS
              >
              > I am starting with hibernate now, but one of the compiling reasons to use
              > it
              > is this kind of functionality. To run fast in a local machine we could use
              > a
              > in memory db, or use o local installation of Oracle. In continuous
              > integration environment we use the most close to the production
              > environment.
              >
              > With hibernate you can generate the correspondent schema to the target db,
              > as the schema is implicit defined in the xmls that do the mapping between
              > objects and the data base. For example, to drop and recreate the database
              > schema, you could change the target db and execute the commands:
              > ...
              > factoryBean.dropDatabaseSchema();
              > factoryBean.createDatabaseSchema();
              > ...
              >
              > Just my 2 cents.
              >
              > Abraços,
              >
              > Josué.
              >
              > PS - sorry my poor English
              >
              > On 10/2/07, timander37 <timander@... <timander%40mchsi.com>> wrote:
              > >
              > > Two Things:
              > > 1) Port the database structure to another DBMS
              > > 2) Extract all data as insert statements
              > >
              > > Some context:
              > >
              > > An easy way to port to another DBMS would be useful because we use
              > > Hypersonic to run our builds in development, but in our continuous
              > > integration environment, QA, and production we use SQL Server. It is
              > > extra maintenance to keep be compatible with both SQL Server and
              > > Hypersonic, but cutting the build time down is worth it. A tool that
              > > generates the scripts to recreate the database structure any supported
              > > database would be very useful. We have used PowerDesigner in the
              > > past, but not many people know how to use it and we had to make our
              > > own Hypersonic dialect. Currently we run our scripts on both SQL
              > > Server and in Hypersonic and have a JUnit test that verifies the
              > > metadata matches. A tool that supports this more naturally would be
              > > very helpful.
              > >
              > > Extracting all data as insert statements (in the correct order to
              > > honor referential integrity). Bonus: generate the insert statements
              > > for the DBMS of choice! This would be helpful because we have a need
              > > to nuke & pave the database for the build. To do this, we maintain
              > > scripts for test data and domain data. Our database tests and
              > > integration tests setup their own transaction data, but we assume the
              > > domain data and configuration data exists. A way to extract all data
              > > from one database as insert statements that are ready to run on
              > > another DBMS would save a lot of time. Other tools do this, but
              > > generally only one table at a time. Usually you have to drop all of
              > > the foreign keys and slam the data into all of the tables (doing some
              > > text manipulation if going to another DBMS), and hope the foreign keys
              > > can be added back without any problems. A real pain.
              > >
              > > Regards,
              > > Tim Andersen
              > >
              > > --- In agileDatabases@yahoogroups.com <agileDatabases%40yahoogroups.com><agileDatabases%40yahoogroups.com>,
              > > "Nathan Voxland"
              > >
              > > <nathan.voxland@...> wrote:
              > > >
              > > > I am one of the developers of LiquiBase (http://www.liquibase.org), an
              > > > LGPL Java library for creating, applying, and managing database
              > changes.
              > > >
              > > >
              > > > I was hoping to get some feedback from outside our mailing list on
              > what
              > > > new features would be most helpful to add--especially for people
              > dealing
              > > > with databases in an agile process. I feel that the project is getting
              > > > to the point that it addresses most of the needs that I can think of.
              > > > However, I know there are uses and constraints that we have not
              > thought
              > > > of and want to make sure we address them. That is why I'm asking: What
              > > > would help you the most in a database change (refactoring) tracking
              > > > tool? Is there particular functionality that would make your life much
              > > > easier? Are there a requirements that you would need satisfied? Is
              > > > there something keeping you from adopting a database change tracking
              > > > tool?
              > > >
              > > > In case you haven't kept up on recent releases, our current major
              > > > functionality includes:
              > > > - 34 Refactorings
              > > > - Extensibility to create custom refactorings
              > > > - update database to current version
              > > > - rollback last X changes to database
              > > > - rollback database changes to particular date/time
              > > > - rollback database to "tag"
              > > > - Stand-alone IDE and Eclipse plug-in
              > > > - "Contexts" for including/excluding change sets to execute
              > > > - Database diff report
              > > > - Database diff changelog generation
              > > > - Ability to create changelog to generate an existing database
              > > > - Database change documentation generation
              > > > - Ability to save SQL to be applied for approval by a DBA
              > > > - DBMS Check, user check, and SQL check preconditions
              > > > - Can split change log into multiple files for easier management
              > > > - Can be run via command line, Ant, Maven, Servlet container, or
              > Spring
              > > > - Support for 10 database systems
              > > >
              > > > You can also see most of the feature requests on our issue tracker:
              > > >
              > > > http://sourceforge.net/tracker/?group_id=187970&atid=923446
              > > >
              > > > Nathan
              > > >
              > >
              > >
              > >
              >
              > [Non-text portions of this message have been removed]
              >
              >
              >



              --
              Cash


              [Non-text portions of this message have been removed]
            Your message has been successfully submitted and would be delivered to recipients shortly.