Re: TDD Database migration code

"Avi Kessner [email protected] [testdrivendevelopment]" <[email protected]> Wed, 20 Apr 2016 10:59:29 +0300
Newsgroups gmane.comp.programming.test-driven-development
Message-ID <CAGEhWpEqBxs2FusNsXi3rFXzUK8dA6-JQMdZJ_uoM2JekO59GA@mail.gmail.com>
Ideally I'm looking for something that creates databases, runs sql, is able
to check the state of the database, and then destroys the database.

I don't really care at what level that happens at. (Though easier is
obviously better)  .. (investigating pgtap now, thanks)

brought to you by the letters A, V, and I
and the number 47

On Wed, Apr 20, 2016 at 10:21 AM, Adam Sroka [email protected]
[testdrivendevelopment] <[email protected]> wrote:

>
>
> Are you talking about test driving database access code from a general
> purpose language? Or are you talking about test driving stuff inside the
> database engine? There is http://pgtap.org/ but I would look for a way to
> do it at a higher level, unless... a gun was pointed at my head.
>
> On Tuesday, April 19, 2016, [email protected] [testdrivendevelopment] <
> [email protected]> wrote:
>
>>
>>
>> My google searches are giving me bad results... :(
>>
>> Does anyone know of any good articles, or have any good hints, on how to
>> do TDD for writing PostgresSQL, or database code?
>>
>> I need to write a custom system which allows us to do DB migrations and
>> updates etc, a bit similar to what Ruby on Rails with has their DB
>> rake:migration command.*
>>
>> Google is mostly giving me information on how to abstract out DB objects,
>> but I need to verify that my new custom migration system is actually
>> working.
>>
>> The tests I would want to write are simples
>>    1. Confirm that a migration file worked (say by adding a column)
>>    2. Confirm that only the latest migration was run, and not a previous
>> one (say by checking a value in the table wasn't changed)
>>
>> I appreciate the help you can provide.
>>
>> *The short version is:
>>  1. A command which generates a .sql file with a timestamp in the file
>> name.
>>   2. A command which checks all the files in a folder, and then does some
>> comparisons to another db, and picks one or more .sql files to run on the
>> db in question.
>>
>>
>>
>>
>>
>> 
>