Re: TDD Database migration code
"Avi Kessner [email protected] [testdrivendevelopment]" <[email protected]> Wed, 20 Apr 2016 11:06:08 +0300
| Newsgroups | gmane.comp.programming.test-driven-development |
|---|---|
| Message-ID | <CAGEhWpH68ZNzgzUY6=B4syyGzkBiztgbVS5O=rmOxai40VZzDw@mail.gmail.com> |
PgTap looks perfect. Thanks! On Apr 20, 2016 10:59 AM, "Avi Kessner" <[email protected]> wrote: > 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. >>> >>> >>> >>> >>> >>> >> > >